2
試圖讓使用模板乙 inary 小號目錄操作搜索牛逼 REE(BST的簡稱)。試圖創建一個使用類模板的新實例,意外的錯誤
當我嘗試創建我的BST的新實例時,出現意外錯誤。我希望這個解決方案不涉及指針,因爲我想把它們保持在最低限度。
現在我有:
template <typename Type>
class BST { // The binary search tree containing nodes
private:
BSTNode<Type> *root; // Has reference to root node
public:
BST();
bool add (int, Type);
};
和節點類型:
編輯:當我切出的代碼未牽累文字,我忘了構造,現在它已添加
template <typename Type>
class BSTNode { // Binary Search Tree nodes
private:
int key; // we search by key, no matter what type of data we have
Type data;
BSTNode *left;
BSTNode *right;
public:
BSTNode (int, Type&);
bool add (int, Type);
};
EDIT2:下面是實際的構造
template <typename Type>
BSTNode<Type>::BSTNode (int initKey, Type &initData) {
this->key = initKey;
this->data = initData;
this->left = NULL;
this->right = NULL;
}
我想嘗試和測試,如果什麼工作/不工作
BSTNode<int> data = new BSTNode (key, 10);
,我也得到:預期BSTNode之前類型說明符。我不知道我在做什麼錯,但我希望的一件事是我不必使用數據作爲指針。
BSTNode<int> data = new BSTNode<int> (key, 10);
也不起作用,似乎它認爲<int>
是< & int>
因爲你是實例不匹配
忘了粘貼它,現在在這裏,是否有任何錯誤? – Kalec
@Kalec構造函數是可以的,但更好的使用初始化列表來避免不必要的默認初始化/賦值。 – juanchopanza
@Kalec,你可能不想在構造函數中按值傳遞'Type'。 – juanchopanza