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'是一種'學生'。看起來並不適合我。一個學生可能*參加*課,但他們真的不是一回事。 –