Open WAG13 opened 4 years ago
MyClass(params) - виклик конструктора класу MyClass, MyClass{params} те саме що MyClass A=params;
MyClass(params) - виклик конструкто класу MyClass з параметрами таких, типів як у змінних params MyClass{params} - aggregate initialization, часто використовуєтсья для примітивного заповнення. Воно також присутнє для масивів: int arr[] = { 1 , 2 };
Другий тип - uniform/aggregate initialization. Зазвичай відрізняються для контейнерів, у яких заданий конструктор з std::initializer_list(тоді контейнер заповнюється елементами списку)
Перший варіант - виклик конструктору Другий називається aggregate initialization, використовується для заповнення параметрами, використовується наприклад у векторах, або парах
Перший вид ініціалізації - виклик констуктора який приймає аргументи params, другий - aggregate initialization. Типова помилка в використанні цих ініціалізаторів :
std::vector(3, 1)
ініціалізує вектор трьома елементами 1 типу int.std::vector{3, 1}
ініціалізує вектор елементами 3 і 1.