1
我试图让C++的基础知识的窍门,和我被困在这一段代码:错误:没有指定类型,设置指针类时为0
#include<iostream>
using namespace::std;
class Node
{
public:
int x;
Node *ptr_next;
};
class LinkedList
{
public:
Node *head;
head = 0; //If I comment out this line the code compiles
};
int main()
{
LinkedList linked_list;
return 0;
}
当我运行上面我得到这个错误:
error: ‘head’ does not name a type
我不明白为什么我不能设置head
到0
;我看着this question,它似乎是上述错误的一个可能的原因是编译器不知道什么引用的类(在我的案例Node
是)。但是,这不应该是这种情况,因为如果我只是声明head
是指向Node
我的代码运行良好。这是当我尝试设置head
到0
上述错误引发。我错过了什么?
如果我忽略了LinkedList
类,并更改main
到:
int main()
{
Node *head;
head = 0;
return 0;
}
代码编译的罚款。所以这是我缺少的Node
和LinkedList
之间的一些互动。它是什么?
使用NSDMI或构造函数。 – chris
你不能在类声明中编写代码来初始化东西(除非使用类似于const int的东西),请使用构造函数来执行它。 –
谢谢你们,向'LinkedList'类添加构造函数可以解决问题。 – Akavall