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