2011-12-12 124 views
0

我試圖創建在C鏈表++使用下面的代碼C++鏈表奇怪的編譯錯誤

int main() 
{ 
    return 0; 
} 

class LList 
{ 
private: 
    struct node 
    { 
     int value; 
     node *follower; // node definitely is a node 
    }; 

    node m_list; 
    int m_length; 
public: 
    LList(); 
    void insert (int index, int value); 
    int get_length() const { return m_length; } 
}; 

LList::LList() 
{ 
    m_length = 0; 
    m_list.follower = 0; 
} 
void LList::insert (int index, int value) 
{ 
    node *cur_node = &m_list; 
    for (int count=0; count<index; count++) 
    { 
     cur_node = cur_node.follower; // << this line fails 
    } 
} 

(這不是我的原代碼,所以請忽略任何unlogic的東西,不好的命名.. 。)

使用g ++編譯的結果在它下面的編譯器錯誤

main.cpp: In member function ‘void LList::insert(int, int)’: main.cpp:33:29: error: request for member ‘follower’ in ‘cur_node’, which is of non-class type ‘LList::node*’

然而「跟隨」幾乎似乎是一個節點!?

注: -I正在使用克++ 4.6.2使用命令

g++ main.cpp -Wall -g -o my_program 

預先 - 工作在Fedora 16 64位計算機上

謝謝!

+0

爲什麼你在第一時間使自己的鏈接列表? C++已經有'std :: list'。 – sbi

+0

@sbi:我猜是任務。 –

+0

@sbi:我有預知:「學習目的」。 – Xeo

回答

7

指針與->訪問:

cur_node = cur_node->follower; 
+0

謝謝!這解決了我的問題。指針仍然讓我感到困惑。 – drakide

+1

@drakide:如果這解決了您的問題,請點擊答案旁邊的小勾,將其標記爲「已接受」。謝謝! – Xeo

4
node *cur_node = &m_list; 

cur_nodenode

for (int count=0; count<index; count++) 
{ 
    cur_node = cur_node->follower; 
} 

指針應工作