如何在C ++中正确声明/分配变量的值

时间:2020-01-05 14:29:05

标签: c++ variables declaration

在分配值之前,我应该在c ++程序的顶部声明变量吗?

int i = 5;
std::string x = "foo";
std::string retval = somefunction();

或者通过以下方式为变量分配值是否正确/可以接受:

{{1}}

我是c ++的新手,我想知道c ++社区接受哪种方式。

2 个答案:

答案 0 :(得分:6)

第二种方法是C ++较为惯用的方法,应首选。 另请参见核心准则NR.1

原因

“最上面的所有声明”规则是旧的编程语言的后遗症,不允许在语句后初始化变量和常量。这会导致程序更长,并且由于未初始化和错误初始化的变量而导致更多错误。

效率也更高,因为第一个是默认构造,然后是赋值,第二个是简单构造。

答案 1 :(得分:4)

如果事先知道初始值,第二种方法会更有效,因为您只调用一个构造函数,而在第一种方法中,您首先调用了默认构造函数,然后是赋值运算符。