Class abstractClass
{
int variable1;
string variable2;
public:
abstractClass():variable1(0),variable2(""){};
abstractClass(int variable1,string variable2)
:variable1(variable1),variable2(variable2){};
virtual void show() = 0;
}
class SubClass : public abstractClass // one of the derived class
{
string variable3;
public:
SubClass():variable3(""){};
SubClass(int variable1,string variable2,string variable3)
: abstractClass(variable1,variable2),variable3(variable3){};
void show() {...}
}
class Problem
{
int number;
string name;
LList<abstractClass*>a_list; // linked list of the abstractClass
public:
Problem():number(0),name(""){}; //how to initialize the linked list?
Problem(int number,string name,LList<abstractClass*>a_list)
:number(number),name(name),a_list(a_list){};
void addList();
}
void addProblem(LList<Problem>p_list)
{
p_list.enter(1,Problem(1,"TESTING",...));
// For the ... is to enter a linked list of SubClass objects
}
我对这个问题每个P_LISTC++链表中存储一个链表
我已经试过内部进入派生类的子类'的多个链接列表
a_list.enter(1,Subclass(111,"AAA","BBB"));
但这给了我错误。为了重载子类变量,我需要为abstractClass和Subclass做上传吗?还是有另一种方法来做到这一点?
此前,我尝试输入子类的链接列表,而不在参数中放入抽象类的链接列表。
Problem(int number,string name):number(number),name(name){};
LList<Problem> p_list(1,Problem(1,"NAME"));
这给了我没有问题,但我不知道如何在链表中插入链表。
也许更有意义的名称是一个好主意 –
除了列出了问题,这个'类的类:公共Student'说,'Classes'是一种'学生'。看起来并不适合我。一个学生可能*参加*课,但他们真的不是一回事。 –