【发布时间】:2011-09-28 02:54:11
【问题描述】:
当我编译这个时:
#ifndef BTREE_H
#define BTREE_H
#include <QList>
template <class T, int degree>
class btree
{
public:
class node
{
public :
node();
private:
node* parent;
QList<T> values;
QList<node*> children;
};
public:
btree();
void insert(const T& value);
node* findLeaf(const T& value);
void performInsertion(const T& value, node& place);
//
node* root;
};
#endif // BTREE_H
findLeaf 的实现是这样的:
template <class T, int degree>
btree<T,degree>::node* btree<T,degree>::findLeaf(const T &value)
{
if(root == NULL)
return root;
}
出现此错误:
error: need ‘typename’ before ‘btree<T, degree>::Node’
because ‘btree<T, degree>’ is a dependent scope
【问题讨论】:
-
如果不小心:错误可能发生在
findLeaf的定义处。 -
我正在尝试粘贴我的代码,但没有显示出来!
-
我希望 SO 将行号放在代码旁边,以便于引用。
标签: c++ templates nested-class