【发布时间】:2018-01-24 00:20:16
【问题描述】:
parent() 函数不允许代码编译;我不知道怎么了。编译器说:expected a qualified name after typename。
但是,构造函数正在工作。如何解决这个问题?
template<typename T>
class Node {
public:
//accessors
Node<T>* parent() const;
private:
T Data;
Node<T>* Parent;
std::vector<Node<T>*> Children;
};
template<typename T>
Node<T>::Node(T const & data){
this->Data = data;
}
template <typename T>
typename Node<T>* Node<T>::parent() const {
return this->Parent;
}
【问题讨论】:
-
你真的需要
typename Node<T>* Node<T>::parent() const { return this->Parent; }中的typename吗? -
我在 parent() 的返回类型之前看到了一个奇怪的类型名。完整的错误信息是什么?
标签: c++ templates visual-c++