私はリンクされたリストでキューを作っています。リンクされたリストは2つのクラスと1つの構造体です。IListは抽象クラスであり、ListはIListから継承します。奇妙なエラーがなくても私のキューからListクラスにアクセスできないようです。テンプレートクラスへのポインタを作成する方法、C++
template <typename T>
class IList{
public:
virtual ~IList();
virtual void add(const T& element) = 0;
//all functions here are pure virtual
};
template <typename T>
class List : public IList<T>{
private:
struct Node{
T data;
Node* next;
};
Node* current;
int nrOfElements;
public:
List();
~List();
List(const List& origObj);
void operator=(const List& origObj);
virtual void add(const T& element);
};
//class definition
私のListクラスのすべてのfunktionsが正常に動作しますが、私はqueue.hからアクセスしようとしたとき、私は2つのエラー
エラー1つのエラーLNK2019取得:未解決の外部シンボル「パブリック:仮想__thiscallのIListを:: 〜のIList(無効)」(?? 1?$のIList @ H @@ UAE @ XZ)機能__unwindfunclet $ ?? 0?$一覧で参照@ H @@ QAE @ ABV0 @@ Z $ 0
と
エラー2エラーLNK1120:未解決の外部が1個
キューはIQueueとIQueueから継承仮想デストラクタは、それは純粋であっても、実装を持っている必要があります
template <typename T>
class Queue : public IQueue<T>{
private:
List<T>* aList; //I can't access List via aList->
public:
Queue();
Queue(const Queue& origObj);
void operator=(const Queue& origObj);
virtual ~Queue();
virtual void enqueue(const T& element);
virtual T dequeue() const throw(...);
virtual T& front() throw(...);
virtual bool isEmpty() const;
};
をしなければならないの.hと.cppのファイルにクラスを分け偶然あなたをしましたか? – NathanOliver
いいえ、すべての定義は同じファイルにあります – Mallom
すべてはどのようにコンパイルされていますか? – NathanOliver