doğrudan bir dizi kullanarak, programım için global sabitler yazıyorum ve bir nesnenin verilerinin olabildiğince yerelleştirilmiş ve birlikte olabildiğince önemli olduğunu, bu yüzden her şeyi doğru şekilde koymak istiyorum. yapıcı.C++: Nesne yapıcısı, parametre listesinde
Sorun, buradaki sabitin, argüman olarak diğer nesneler dizisini alan bir nesnedir. Bu işi gibi
şeyler:
Constant::Constant(const char * string){...}
const Constant obj("string");
ama işler bu yok gibi: Kesinlikle ne gerek gibi
Constant::Constant(const int * array){...}
const Constant obj({1, 2, 3, 4});
ve şeyleri yok:
Constant::Constant(const vec2 * array){...}
const Constant obj({vec3(6, 9), vec3(4, 2)});
Am I Bunu yanlış yapmaya çalışmak, yanlış yapıcı parametre türlerine sahip olmak veya dize değişmez e bu gibi parametre listesine yerleştirilmiş mi? yorumunda söylenenlerin yanında
Değil% 100 emin std :: initializer_list' veya 'std :: array'. – NathanOliver
Sanırım ikinci çağrı ('..obj ({1,2,3,4,};') 'std :: initializer_list' kullanılmakta, dolayısıyla bunu kullanan bir kurucu olması gerekmektedir. Bir STL konteyneri bunu çözmeye yardımcı olabilir, çünkü bunlar init listelerine sahip olan kuruculara sahipler, buna karşılık – iksemyonov
@iksemyonov - 'std :: initializer_list' aradı ve tam olarak umduğum gibi çalışıyor, teşekkür ederim! –