2015-04-05 9 views
0

Является ли хорошей практикой использовать эти определения для фундаментальных типов?Унифицированная инициализация для фундаментальных типов?

int num1(), num2(0); 
char ch1(), ch2(' '); 

Их можно легко ошибочно принять за определения функций.

int nam1(); 
char ch1(); 
+0

Это поможет, если вы добавите тег о том, какой язык программирования вы используете. – Dijkgraaf

+0

И скажите нам, что означает «имея в виду функции определения». – EJP

+0

@ Dijkgraaf, EJP благодарит за разъяснения. Я понимаю, что использование единообразной инициализации в конструкторах _class_, однако, помогает ли это читать код вне конструктора. – Ziezi

ответ

1

Поскольку C++ позволяет размещать объявления переменных в любой момент в программе ... Я думаю, что есть мало повод для неинициализированных переменных.

Существует несколько разногласий относительно разницы в C++ 11 между Type var (param); и Type var {param};, причем последний прописывается через то, что называется Uniform Initialization. Я попытался использовать только унифицированную инициализацию и получил из нее некоторые странные краевые случаи. Я не уверен, что все это взломано, и они отступают и обычно ищут ясность кода.

Таким образом, я бы сказал, char ch1(' ');, из-за того, что он уродлив, лучше сказать как char ch = ' '; Это действительно система компромиссов.