C++ 类方法返回指向具有模板的类成员的指针

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;

我正在尝试为一个类“LinkedList”编写一个函数,它有自己的类“Node”。类“LinkedList”是一个模板类。我试图编写一个函数“Foo_do_something”,它返回一个指向“Node”的指针。代码如下:

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* {