0
我知道這可能是第一年的問題,但我遇到了一些模板問題,我還沒有找到合適的答案。我試圖實例化一個新的模板類,像這樣:超級基本聲明新的模板類對象問題
TreeNode <T>newLeft = new TreeNode(root->data[0]);
這是指的一個構造函數,看起來像:
template <class T>
//paramerter receving constructor
TreeNode<T>::TreeNode(T item){
data[0] = item;
nodeType = 2;
}//end
而且,我發現了以下錯誤:
錯誤: 'TreeNode'前預期的類型說明符
錯誤:預計';' 「樹節點」之前
什麼是類型說明符?如果有必要,我可以提供更多的代碼,而且我知道我之前提過了一個關於此代碼的問題,並且我確信我會因此而惹火;但我仍然有問題...
編輯: 這是它在使用的功能:
template <class T>
void TwoThreeFourTree<T>::splitRoot(){
TreeNode <T> newRoot;
newRoot = new TreeNode(root->data[1]);
TreeNode <T>newLeft = new TreeNode(root->data[0]);
TreeNode <T>newRight = new TreeNode(root->data[2]);
newRoot.child[0] = newLeft;
newRoot.child[1] = newRight;
newLeft.child[0] = root.child[0];
newLeft.child[1] = root.child[1];
newRight.child[0] = root.child[2];
newRight.child[1] = root.child[3];
root = newRoot;
}
而每一次我嘗試創建一個新的對象,我得到了相同的兩個錯誤在功能
第一個聲明(「newLeft」)是否出現在某個模板函數或模板類中? 「newLeft」類型的類型參數「T」的使用不能出現在非模板定義中。 – seh 2009-11-28 00:34:31