gpt4 book ai didi

c++ - 在C++ 11中初始化类成员变量

转载 作者:行者123 更新时间:2023-11-28 00:24:27 25 4
gpt4 key购买 nike

考虑以下类定义:

class C {
public:
int i = 9;
const int j = 2;
};

编译时不使用标志启用 C++11(使用 g++,例如 g++ -o test test.cpp),编译器会提示成员变量初始化。但是,使用 -std=c++11 效果很好。

为什么在 C++11 中更改了此规则?以这种方式初始化成员变量是否被认为是不好的做法?

最佳答案

在声明时初始化非静态数据成员不仅仅是“坏习惯”;在 C++11 之前,这根本不可能

等效的 C++03 代码为:

class C
{
public:

C() : i(9), j(2)
{
}

int i;
const int j;
};

以防万一:What is this weird colon-member syntax in the constructor?

关于c++ - 在C++ 11中初始化类成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25773714/

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