gpt4 book ai didi

C++11 变量初始化和声明

转载 作者:行者123 更新时间:2023-11-30 00:51:47 25 4
gpt4 key购买 nike

C++11 带来了一种初始化和声明变量的新方法。

原创

int c_derived = 0;

C++11

int modern{0};

如果有的话,每种方法的优缺点是什么?为什么要实现新方法?编译器有什么不同吗?

最佳答案

你错了——int modern(0) 形式(带圆括号)在旧版本的 C++ 中可用,并且在 C++11 中继续可用。

在 C++11 中,新形式使用花括号来提供统一的初始化,所以你说

int modern{0};

这种新形式的主要优点是它可以在任何地方一致使用。它清楚地表明您正在初始化一个新对象,而不是调用一个函数,或者更糟的是,declaring one。 .

它还提供与 C 风格(“聚合”)结构初始化的语法一致性,形式为

struct A
{
int a; int b;
};

A a = { 1, 2 };

当使用花括号形式时,对于缩小数字类型的转换也有更严格的规则。

关于C++11 变量初始化和声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20603403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com