Я изучаю 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);
Есть ли что-нибудь еще?
Я хотел бы знать, а) Я охватил все типы инициализации и б) когда использовать каждый тип?