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

Cae*_*ium 16 c++ initialization list-initialization

当我阅读《C++编程语言第4版》时,要初始化变量,作者说最好使用{}而不是=初始化变量:

变量初始化

但我发现使用的人={}.
那么哪种方法是值得坚持的好原则呢?=或者{}

Sha*_*des 8

您选择哪一种取决于您自己的编码风格以及您认为最好的。最重要的是,一旦您决定使用哪种方法,请始终如一地使用该方法。不要在方法之间切换,这会使阅读代码变得非常混乱。自 C++98 以来的另一种变量初始化方式(称为“直接初始化”)是:

int variable(1)
Run Code Online (Sandbox Code Playgroud)

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

我的个人风格是我祖父在 1960 年代从事 IBM 大型机工作时教给我的风格:

int
    Variable1 = 2,
    Variable2 = 39,
    Variable3 = 45;

bool
    Foo = true,
    Bar = false;

// etc.
Run Code Online (Sandbox Code Playgroud)

您会注意到我也在大括号上使用了“=”符号。这似乎是大多数人编写代码的方式,所以我和我的祖父就这样编写代码,以减少人们阅读我们的代码时的混乱。我不知道这种方法在公司环境或组织中的接受程度如何,我只是认为这是最具吸引力和直观的风格。它还可以节省大量打字时间。