我在另一个模板化的类中有一个名为 node 的类。 Node 类的一些方法返回 Node 指针。这是我如何实施的摘录
template <typename T>
class myClass{
....
class Node{
Node* getNodePointer();
...
}
}
...
template <typename T>
myClass<T>::Node* myClass<T>::Node::getNext()
{ return next; }
当我编译上面的代码时,出现此错误“ myClass.h:138:1: error: need ‘typename’ before ‘myClass::Node’ because ‘myClass’ is a dependentscope”。我该如何解决这个问题?非常感谢
澄清一下,编译器不知道myClass<T>::Node
现在或将来都将是一种类型。可以这样想:
template <typename T>
class A
{
public:
typedef T value_type;
};
template <typename T>
class B
{
public:
typename A<T>::value_type x;
};
template <> A<int> { public: static int value_type=10;}
您必须向编译器承诺该类型是类型名。它默认假设它是一个值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)