初始化变量时,请使用花括号({})或等号(=)

问题描述 投票:1回答:2

当我正在阅读The C++ Programming Language 4th Edition时,为了初始化变量,作者说使用{}而不是=来初始化变量:variable initialization但是我看到有更多人使用=而不是{}。 那么哪种方法是坚持的好原则? ={}? 多谢!

c++
2个回答
1
投票

您选择哪一个取决于您自己的编码风格。最重要的是,一旦确定使用哪种方法,就要始终如一地使用该方法。不要在两种方法之间切换。我个人使用(=)符号来初始化变量,因为这是我看到的最常见的变量初始化方法。此外,更新的C ++标准(我相信C ++ 11及更高版本)允许您初始化变量,如下所示:

int variable(1)

但我会建议你不要这样做,它在某些情况下不起作用,正如你的书可能涵盖的那样。


-3
投票

本书建议使用初始化程序的一个原因是它成为初始值。

当使用赋值'='时,在某些情况下,您最终会构造给它初始值的对象,然后代码使用类类型的赋值运算符来更改初始值,因此效率较低。这仅在某些情况下,取决于可用的构造函数等。

但是,在大多数情况下,现代编译器可以优化它以使其成为同一个东西。所以不值得担心。

C ++的一个问题是,无论事情多么简单,总有几种方法可以做同样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.