Рекомендации по инициализации переменных в C++

Каковы рекомендации по инициализации переменных в C++? Существует множество способов инициализации переменной в C++. 3 способа, с которыми я знаком, заключаются в следующем:

1) int a = 3;

2) int a(3);

3) в {3}; // действительно для C++11 и позже

Какой самый лучший подход? Почему 2-й способ int a(3); не встречается так часто и не используется в программах на C++?
Благодарю.

1 ответ

Решение

Первые две инициализации имеют точно такой же эффект. Я предполагаю, что большинство людей предпочитают первый вариант второму, потому что он выглядит более естественным.

Третий вариант, однако, имеет другие правила: он запрещает сужать конверсию. Так что пока вы можете сделать

int a = .3;

и получить int это равно нулю,

int a {.3};

будет ошибка времени компиляции. Таким образом, инициализатор фигурных скобок имеет то преимущество, что он останавливает вас от таких преобразований в случае аварии и заставляет вас явно заявить, что вы намерены, если вы действительно хотите сужающее преобразование.

Другие вопросы по тегам