различные типы инициализации в C ++

Я изучаю C ++, и меня довольно смущают различные типы инициализации.

Вы может:

T a;

что, насколько я могу судить, иногда инициализирует a , а иногда нет, в зависимости от того, имеет ли T конструктор по умолчанию.

Вы также можете:

T a(); // or
T a(1, 2, 3... args);

; (в некоторых случаях):

T a = 1; // implicitly converted to T sometimes?

; если конструктора нет:

T a = {1, 2, 3, 4, 5, 6};

; а также:

T a = T(1, 2, 3);

.

Если вы хотите выделить в куче, есть

T a = new T(1, 2, 3);

Есть ли что-нибудь еще?

Я хотел бы знать, а) Я охватил все типы инициализации и б) когда использовать каждый тип?

15
задан Aaron Yodaiken 1 May 2011 в 00:29
поделиться