2011-12-05 210 views
0

我正在使用struct作爲節點來編寫二叉搜索樹。我需要用struct構造函數初始化結構體中的變量。將內部變量傳遞給結構構造函數C++

我有下面的代碼工作得很好:

struct TreeNode{ 
    char name[20]; 
    int bribe; 
    TreeNode* left; 
    TreeNode* right; 

    TreeNode() 
    { 
     bribe = '\0'; 
     left = NULL; 
     right = NULL; 
     for (int i = 0; i < 20; i ++){ 
     name[i]= '\0'; 
    } 
} 

我需要有一個構造函數的參數初始化 - > 樹節點(字符*名稱,INT賄賂,樹節點*左,樹節點*右) 我想這是類似於我看到了一個例子,但我得到了一些錯誤的情況如下:

struct TreeNode{ 

    char name[20]; 
    int bribe; 
    TreeNode* left; 
    TreeNode* right; 

    TreeNode(char* name, int bribe, TreeNode* left, TreeNode* right); 
}; 


TreeNode::TreeNode(char* name, int bribe, TreeNode* left, TreeNode* right){ //***check this 
    bribe = '\0'; 
    left = NULL; 
    right = NULL; 
    for (int i = 0; i < 20; i ++){ 
     name[i]= '\0'; 
    } 
} 

所以我的問題是關於傳遞參數給一個構造函數初始化的結構varai一個struct統計局。我似乎無法弄清楚,如果這發生在內部或外部,或者正確的語法是什麼。我試圖完成第一個代碼段的工作,但是通過將參數傳遞給構造函數來完成。任何幫助將不勝感激。

編輯: 下面是我收到的錯誤:

enter image description here

+0

請告訴我們錯誤是什麼,以及導致錯誤的原因。這會幫助我們幫助你。 –

+0

除了關於成員初始值設定項列表的答案,有沒有聽說過「this」關鍵字? –

+0

我附上上面的錯誤,我嘗試了與「this」關鍵字相同的實現,仍然有相同的錯誤。 – user813611

回答

3

您應該使用C++中的Member Initializer List來初始化類成員。

+0

嘿,關於是否「初始化列表」是正確的術語,這麼愚蠢的辯論。但是,當它發生時...無論如何,+1的鏈接。 –