比方說,我有這樣的結構:自撐初始化
struct MyStruct {
int field1;
char *field2;
MyStruct(int a, char* b): field2(b) {
field1 = doStuff(a);
}
MyStruct(int a): MyStruct(a, nullptr) {}
~MyStruct();
}
據我知道這是不是一個集合體,我有一些構造函數。
我想達到的目標是使用大括號初始化在自定義的方式,這意味着使用這樣的代碼:
MyStruct x = { 1, "string" };
這隱式調用適當的構造函數(第一個在此案件)。
這有可能以任何方式嗎?
[initializer_list(http://en.cppreference.com/w/cpp/utility/initializer_list)?順便說一句...在這種特殊情況下,您可以通過使用[默認參數](http://en.cppreference.com/w/cpp/language/default_arguments)來減少代碼。 – user1810087
如果你只是使用'const char *'而不是'char *',它只是按原樣編譯。問題是什麼? – SergeyA