2012-05-22 26 views
7

Mam podstawowe pytanie. Mam klasę z członkiem danych: double _mydata[N]. (N to parametr szablonu). Jaka jest składnia inicjowania tych danych do zera za pomocą listy inicjalizacji konstruktora? Czy _mydata({0}) OK zgodnie ze standardem C++ (i tak dla wszystkich kompilatorów)?C++: lista inicjalizacyjna konstruktora dla tablicy?

Dziękuję bardzo.

+0

Dobrze , Myślę, że mógłbyś dość łatwo odpowiedzieć na połowę swojego pytania, ponieważ '_mydata ({0})' nie skompilowałoby się. –

Odpowiedz

12

Nie, przed C++ 11 trzeba zrobić tylko to default-zainicjować każdego elementu tablicy:

: _mydata() 

Droga masz napisane nie zadziała.

z C++ 11 jest bardziej zalecane użycie jednolity inicjalizacji składni:

: _mydata { } 

iw ten sposób rzeczywiście można umieścić rzeczy do tablicy którego nie mógł wcześniej:

: _mydata { 1, 2, 3 }