gpt4 book ai didi

C++模板类的函数

转载 作者:行者123 更新时间:2023-11-28 04:50:00 25 4
gpt4 key购买 nike

parent() 函数不允许代码编译;我不知道出了什么问题。编译器说:需要在 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;
}

最佳答案

您的代码有两个问题。

第一个问题是您缺少 Node 类内部的构造函数声明。第二个问题是在父级签名中使用类型名。

typename Node<T>* Node<T>::parent() const

Node 不是嵌套依赖类型,所以这里使用的 typename 是不正确的。参见 this answer获取更多信息。

关于C++模板类的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48412976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com