【发布时间】:2015-05-31 11:15:51
【问题描述】:
在 C++ 中初始化变量的准则是什么?在 C++ 中有很多方法可以初始化变量。我熟悉的3种方式如下:
1) int a=3;
2) int a(3);
3) int a{3}; // 适用于 C++11 及更高版本
哪种方法最好?为什么第二种方式 int a(3);在 C++ 程序中不常见且不使用?
谢谢。
【问题讨论】:
-
这是相当基于意见的。你如何定义“最好”?你只关心整数,还是类和结构?这是完全不同的。
-
第二种选择很难阅读,实际上对编译器来说同样困难。
a是函数还是变量?相关阅读:Most vexing parse。在这种情况下,它按预期工作,但要小心使用该语法。 -
不要忘记
int a = {3};和int a = int(3);auto a = 3;(以及所有其他变体) -
@meet 是的,你甚至可以做
int a = int(); -
@WesleyShillingford "you can even do
int a();" 仔细阅读 Joachim 的评论和链接。
标签: c++ c++11 initialization