初始化变量的不同方法

时间:2014-03-20 20:03:36

标签: c++ variables initialization

在c ++中初始化变量有多种方法。 int z(3)与int z=3相同。 是

int z;
z(3);

相同
int z;
z=3;

4 个答案:

答案 0 :(得分:8)

您可以使用:

int z;
z = 3;

或者只是:

int z = 3;

或者:

int z(3);

或者:

int z = int(3);

答案 1 :(得分:3)

z(3);本身是无效的语法。唯一有效的方法是,如果你有一个名为z的函数,你传入整数3.但即使这样也不一定将局部变量z设置为3。 / p>

int z(3);将仅在C ++中编译(而不是C)。

int z; z=3;

是有效的语法,并将z设置为3。

在这种情况下,int z(3)int z; z=3;都是相同的。

答案 2 :(得分:3)

没有z(3);正在使用参数z调用名为3的函数

如果要使用该语法初始化,则需要在声明

中执行此操作
int z(3):

然而,你可以像这样初始化z

int z{3};

这是从C ++ 11开始初始化变量的推荐方法

语法的优点是,当存在缩小转换时它会产生错误,即如果不能保证该值适合目标变量,则会出现编译错误。语法可用于任何对象。

参考:第7项,Scott Meyers的有效现代C ++

答案 3 :(得分:0)

不,第一个选项不正确:最烦恼的解析。编译器认为z是一个函数。然而,这些基本上完全相同:

int z(3);
int z = 3;

请注意,在这种情况下它们是相同的,但是在对象上,第一个调用匹配的构造函数,而第二个需要重载赋值运算符的重载(=

相关问题