Я изучаю С++ и довольно путаюсь в отношении разных типов инициализации.
Вы можете сделать:
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);
Есть ли что-нибудь еще?
Я хотел бы знать, если: a) у меня есть все типы инициализации и b) когда использовать каждый тип?