pls看一下这段代码:
template<typename T>
class myclass {
private:
class node {
friend class myclass;
T t;
node(T t_) : t(t_) {};
};
node nd;
node getNode();
public:
myclass(T t_) : nd(node(t_)) {};
T get() {
auto node = getNode();
return node.t;
}
};
template<typename T>
myclass<T>::node myclass<T>::getNode() {
return nd;
}
我在模板之外定义方法getNode()
,然后编译器报告此错误:
missing 'typename' prior to dependent type name 'myclass<T>::node'
myclass<T>::node myclass<T>::getNode() {
我应该如何正确书写?
答案 0 :(得分:4)
需要将typename
关键字用于相关类型myclass<T>
template<typename T>
typename myclass<T>::node myclass<T>::getNode() {
~~~~~~~~
return nd;
}