3
我寫的全局常量我的程序,以及一個對象的數據是本地化和在一起,可能是對我很重要,所以我希望把一切權構造函數。C++:使用在參數列表中直接字面數組對象構造
存在的問題是,雖然在這種情況下,常數是採取其它對象的數組作爲參數的對象。
事情是這樣工作的:
Constant::Constant(const char * string){...}
const Constant obj("string");
,但這樣的事情並不:
Constant::Constant(const int * array){...}
const Constant obj({1, 2, 3, 4});
之類的東西我肯定需要做的不是:
Constant::Constant(const vec2 * array){...}
const Constant obj({vec3(6, 9), vec3(4, 2)});
上午我試圖做不正確的,有錯誤的構造函數參數類型,或者是字符串文字是唯一可以b的數組文字e放置在這樣的參數列表中?
不是100%肯定你婉做什麼,但它看起來像你可能需要一個'std :: initializer_list'或'std :: array'。 – NathanOliver
我認爲第二個呼叫('..obj({1,2,3,4,};')導致'的std :: initializer_list'被使用,因此存在需要使用是一個構造否則一個構造採用STL容器可以幫助解決這個問題,因爲那些有構造函數初始化服用列表,依次 – iksemyonov
@iksemyonov - 擡眼'的std :: initializer_list'和它的作品正是我希望,謝謝! –