继承的类是否继承嵌套的类?
我有一个模板类,例如继承的类是否继承嵌套的类?
template<class T,class Key>
class BinaryTree:{
public:
class node {};
}
,现在我想从类继承,例如:
class AVLTree : public Binary Tree
我被卡住的问题是这些功能我想在AVLTree中实现不识别节点。例如,让功能更
void rotateLL(node* n)
编译器说:
node has not been declared
我怎样才能解决这个问题?
node
是什么叫做依赖的名字,因为它的基类,它依赖于模板参数的成员。您需要:
template <class T, class Key>
class AVLTree : public BinaryTree<T, Key> {
public:
void rotateLL(typename AVLTree::node *n);
};
你是一个拯救生命的人! –
很难猜出您遇到的情况 - 您的问题中的代码有很多错别字,因此无法猜测您真正使用的代码的样子。
尽管如此,你显然想要完成的基本想法可以正常工作。例如,下面的编译没有问题:
template<class T, class Key>
class BinaryTree {
public:
class Node {};
};
template <class T, class Key>
class AVLTree : public BinaryTree<T, Key> {
public:
void rotateLL(typename BinaryTree<T, Key>::Node *n);
// or: void rotateLL(typename AVLTree::Node *n);
};
不,它不:http://coliru.stacked-crooked.com/a/621e32915451f7ab – aschepler
@aschepler:糟糕 - 很正确。 (让我信任VC++)。 –
对不起,我第一次问这里。我编辑了这个问题。 –
你错过了很重要的细节。 AVLTree也是模板类吗? – AnT