В чем разница между способами инициализации?
class A
{
public:
A(int num): val(num) {};
private:
int val;
};
int main (void)
{
A a1 = 5;
A a2{5};
A a3 = {5};
A a4(5);
return 0;
}
A a1 = 5;
создается временный обьект A(5) и копируется в a1
A a2{5};
создается обьект со значением
A a3 = {5};
тот же вариант, что и в первом случаи
A a4(5);
тот же вариант, что и во втором случаи, с той разницей, что вместо 5 может быть значение любого типа, который неявно может преобразоваться в int.
Например: double, unsigned, char...
Сборка персонального компьютера от Artline: умный выбор для современных пользователей