2011-06-13 101 views
4

簡單的問題。我有一個結構,它有一個也是一個結構的成員。成員結構在構造上接受一個字符串參數。但是,在類定義中,編譯器不允許從那裏實例化。即以下是不允許的:C++結構定義 - 如何在構造函數中定義一個具有單個參數的成員結構

struct StructName { 
    string  str; 
    OtherStruct other_struct("single string param") 
}; 

所以我試圖不給它它失敗,因爲它必須採取一個參數:

struct StructName { 
    string  str; 
    OtherStruct other_struct; 

    StructName(string arg); 
}; 

我是新的C/C++,所以我很抱歉如果這是一個愚蠢的問題。

謝謝。

回答

11

使用初始化列表:

struct StructName { 
    string  str; 
    OtherStruct other_struct; 

    StructName(): other_struct("init string") { } 
}; 

你也可以採取一個參數StructName並通過它傳遞給other_struct,如:

StructName(string arg): other_struct(arg) { } 
相關問題