我試圖做兩個可以自己調用的小構造函數,然後創建一個更大的構造函數,它允許您通過簡單地調用其他兩個構造函數一次完成所有任務。我的代碼多重構造函數的繼承
例子:
Foo::Foo(bool someVar, int someOtherVar, int fooBar) : Foo(someOtherVar, fooBar), Foo(someVar) {}
Foo::Foo(bool someVar) { this->_someVar = someVar; }
Foo::Foo(int someOtherVar, int fooBar) { this->_someOtherVar = someOtherVar + fooBar; }
從中我得到
In constructor 'Foo::Foo(bool, int, int)': error: mem-initializer for 'class Foo::Foo' follows constructor delegation Foo(someOtherVar, fooBar), Foo(someVar) { }
問題是什麼?
目標構造函數必須是* ctor-initializer *中唯一的* mem初始化符*,否則* ctor-initializer *是格式不正確的。 – 0x499602D2
不允許使用多個構造函數。訪問這個網站了解更多關於這個https://www.ibm.com/developerworks/community/blogs/5894415f-be62-4bc0-81c5-3956e82276f3/entry/introduction_to_the_c_11_feature_delegating_constructors?lang=en – Nivetha