我正在通過製作一個通用的List
類來學習繼承。 List
可以是Unordered
列表,Ordered
列表,Stack
或Queue
。太少的參數繼承C++
我List
類看起來是這樣的:
class List
{
public:
class Node
{
public:
int data;
Node * next;
Node(int data);
};
int sizeOfList = 0;
Node * head = nullptr;
List::List();
virtual void get(int pos);
virtual void insert(int data);
virtual void remove(int pos);
virtual void list();
virtual int size();
};
我Unordered
列表類看起來是這樣的:
class UnOrderedList : public List
{
public:
UnOrderedList();
void get();
void insert(int data);
virtual void remove(); //takes no parameters because first item is always removed
};
在main()
,我像這樣創建列表的數組;
List * lists[8];
,使一個無序列表如下:
lists[0] = new UnOrderedList();
我的問題: lists[listNum]->get();
給出錯誤
「在函數調用的參數太少」
,因爲它認爲我試圖在List
類中調用get()
,但我希望它調用無序列表的函數get()
。
因爲它如何知道'lists [0]'指向UnOrderedList,而不是SomeOtherRandomList? – immibis