【发布时间】:2011-12-08 11:52:54
【问题描述】:
我正在构建一个包含私有结构“myNode”的模板类“myTree”。我还有一个私有函数“findNode”,我想返回一个 myNode*。但是,当我尝试定义“findNode”时,我收到 5 个错误,这些错误似乎源于第一个错误,即我在“myNode”和“*”之间缺少分号。
这是基本代码:
template <size_t N, typename ElemType>
class myTree {
public:
//...
private:
struct myNode{
//...
};
myNode* findNode(const otherClass<N>& key);
};
template <size_t N, typename ElemType>
myNode* myTree<N, ElemType>::findNode(const otherClass<N>& key) {
return 0;
}
我尝试将返回类型更改为 void,错误消失了,这意味着我认为我使用结构的方式有问题。
错误是: 1) 语法错误:缺少 ';'前 '*' 2) 缺少类型说明符 - 假定为 int 3) 'N' 未声明的标识符 4) 'ElemType' 未声明的标识符 5) 'N' 未声明的标识符
这些都指向函数声明行( myNode* myTree::findNode(const otherClass& key) { )。
【问题讨论】: