所以我試圖弄清楚當模板混合時繼承是如何工作的。大多數編譯器似乎還沒有這個想法,所以我有一點語法困難。 SkipNode.h中包含的所有奇怪的東西都是試圖讓Eclipse停止向我大喊大叫。在嘗試在SkipNode.h中聲明構造函數時出現語法錯誤,所以這裏的任何幫助都會有用。從C++模板類繼承的問題
這裏是node.h
#ifndef NODE_H_
#define NODE_H_
template<class T>
class Node
{
public:
Node(Node<T>* next, Node<T>* prev, T item);
virtual ~Node();
Node* getPrev() { return prev;};
Node* getNext() { return next;};
Node* getItem() { return item;};
void setItem(T item){Node<T>::item = item;};
void setNext(Node* next){Node<T>::next = next;};
void setPrev(Node* prev){Node<T>::prev = prev;};
private:
Node* next;
Node* prev;
T item;
};
這裏是SkipNode.h,其中skipnode從節點繼承。
#include "Node.h"
#include "Node.cpp"
#include "SkipNode.h"
#include "SkipNode.cpp"
template <class T>
class SkipNode: public Node
{
public:
SkipNode(Node<T>* next, Node<T>* prev, Node<T>* child, T item) : Node(next, prev, item);
virtual ~SkipNode();
Node* getChild(){return child;};
void setChild(Node* child){SkipNode::child = child;};
private:
Node *child;
};
#endif /* SKIPNODE_H_ */
我做你建議的修改,但它仍然不喜歡這裏的東西..我已經嘗試了這些變化沒有任何的運氣 –
,如果你真正發佈錯誤消息,這將是有幫助的。你可能會有更多的錯誤。 – billz
錯誤是「語法錯誤」 –