C++ 类方法返回指向具有模板的类成员的指针
我正在尝试为一个类“LinkedList”编写一个函数,它有自己的类“Node”。类“LinkedList”是一个模板类。我试图编写一个函数“Foo_do_something”,它返回一个指向“Node”的指针。代码如下:C++ 类方法返回指向具有模板的类成员的指针,c++,class,pointers,templates,C++,Class,Pointers,Templates,我正在尝试为一个类“LinkedList”编写一个函数,它有自己的类“Node”。类“LinkedList”是一个模板类。我试图编写一个函数“Foo_do_something”,它返回一个指向“Node”的指针。代码如下: template <typename T> class LinkedList{ public: class Node { public: T data; Node *next; Node *prev;
template <typename T>
class LinkedList{
public:
class Node {
public:
T data;
Node *next;
Node *prev;
Node(): next(nullptr), prev(nullptr) {}
Node(const T & data): data(data), next(nullptr), prev(nullptr) {}
};
public:
Node* Foo_do_something();
};
template <typename T>
Node* LinkedList<T>::Foo_do_something(){
std::cout<<"Hello";
Node *ptr = new Node(100);
return ptr;
}
我理解这是因为“节点”属于类“LinkedList”范围。所以我需要以某种方式添加这些信息。我尝试了以下代码,但这也会引发错误
LinkedList<T>::Node* LinkedList<T>::Foo_do_something(){
LinkedList::Node*LinkedList::Foo\u do\u something(){
我可以理解,如果我在类中定义函数,那么问题就可以解决。但我试图将函数的实现分开。有没有办法做到这一点?如注释中所述,正确的形式是:
typename LinkedList<T>::Node* LinkedList<T>::Foo_do_something() {
如评论中所述,正确的形式为:
typename LinkedList<T>::Node* LinkedList<T>::Foo_do_something() {
试试typename链接列表::节点*
。试试typename链接列表::节点*
。
auto LinkedList<T>::Foo_do_something() -> Node* {