老师留的2道作业题目,为什么小弟我编译了不能Run呢,题目小弟我也看不太懂,求指点
老师留的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>
}
------解决方案--------------------
死循环了呗!
一、已知类的定义如下:
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>
}
------解决方案--------------------
死循环了呗!