c ++声明该类中的类的变量

vbm*_*n11 1 c++ variables class

我有以下代码:

template <typename T>
class Node{
public: 
    Node<T>(T data){
        this->data = data;
    }
    T data;
    Node<T> left; 
    Node<T> right;
};
Run Code Online (Sandbox Code Playgroud)

但它不喜欢我如何拥有与它们所在类相同类型的成员变量,因为编译器不知道"Node"是什么.

Ned*_*der 6

要声明left,并rightNode<T> *:

Node<T> *left;
Node<T> *right;
Run Code Online (Sandbox Code Playgroud)

问题不仅在于编译器还没有完整的定义,而是你试图说Node包含两个其他节点,因此对于Node的大小没有合理的定义.