读书人

老师留的2道作业题目为什么小弟我编

发布时间: 2012-02-11 09:51:35 作者: rapoo

老师留的2道作业题目,为什么我编译了不能Run呢,题目我也看不太懂,求指点
一、已知类的定义如下:
class Base {
protected:
int iBody;
public:
virtual void printOn() = 0;
Base(int i = 0) : iBody(i) {}
};
class Sub1 : public Base {
// …
public:
void printOn();
Sub1(int i, char* s);
};
class Sub2 : public Base {
// …
public:
void printOn();
Sub2(int i, short s);
};
试完成类Sub1和Sub2的定义和操作的实现代码,使之能符合
下面程序及在注释中描述的运行结果的要求:
main()
{
Sub1 s1(1000, "This is an object of Sub1 ");
Sub2 s2(2000, 10);
s1.printOn();
// 此时显示出: <1000: This is an object of Sub1>
s2.printOn(); // 此时显示出: <10 and 2000>
}

二、定义类模板SortedSet,即元素有序的集合,集合元素的类型
和集合元素的最大个数可由使用者确定。要求该类模板对外提供
以下三种操作:
insert:加入一个新的元素到合适的位置上,并保证集合元
素的值不重复;
get:返回比给定值大的最小元素的地址。若不存在,返
回0;
del:删除与给定值相等的那个元素,并保持剩余元素的
有序性。




[解决办法]

class Base {
protected:
int iBody;
public:
virtual void printOn() = 0;
Base(int i = 0) : iBody(i) {}
};
class Sub1 : public Base {
// …
protected:
char* pChar;

public:
void printOn();
Sub1(int i, char* s);
};
class Sub2 : public Base {
// …
protected:
short ss;
public:
void printOn();
Sub2(int i, short s);
};

Sub1::Sub1(int i, char* s)
{
iBody = i;
pChar = s;
}

void Sub1::printOn()
{
printf( " <%d: %s> \n ", iBody, pChar);
}

Sub2::Sub2(int i, short s)
{
iBody = i;
ss = s;
}

void Sub2::printOn()
{
printf( " <%d and %d> \n ", iBody, ss);
}
//试完成类Sub1和Sub2的定义和操作的实现代码,使之能符合
//下面程序及在注释中描述的运行结果的要求:
main()
{
Sub1 s1(1000, "This is an object of Sub1 ");
Sub2 s2(2000, 10);
s1.printOn();
// 此时显示出: <1000: This is an object of Sub1>
s2.printOn(); // 此时显示出: <10 and 2000>
}

[解决办法]
死循环了呗!

读书人网 >C++

热点推荐