Рекомендации по инициализации переменных в 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};
будет ошибка времени компиляции. Таким образом, инициализатор фигурных скобок имеет то преимущество, что он останавливает вас от таких преобразований в случае аварии и заставляет вас явно заявить, что вы намерены, если вы действительно хотите сужающее преобразование.