这段代码会产生如下错误
error: field 'next' has incomplete type 'Node'
class Node {
public:
Node(int k, int v) {
key = k;
val = v;
}
public:
Node* prev, next;
int key, val;
};
将 Node* 更改为 int 不会有同样的提示。将 prev 和 next 放在不同的行中可以解决错误。
为什么我不能在同一行中定义两个类的相同类型的成员指针?
最佳答案
星号 (*) 属于变量名。 Node
是数据类型。实际上,您已经定义了:
Node *prev;
Node next;
在next
前加一个星号,例如*下一步
。
该错误与这样一个事实有关,即您未能初始化存储在 next
中的 Node
实例。 prev
是一个指针,不需要初始化。
关于c++ - 为什么我不能在同一行中定义两个类的相同类型的成员指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50275872/