gpt4 book ai didi

c++ - C++11初始化变量时{}和=的区别

转载 作者:太空狗 更新时间:2023-10-29 20:21:48 29 4
gpt4 key购买 nike

我使用 CLion 作为 IDE,它在 IDE 中报告错误

field z must be initialized

可以编译运行。但是如果我把const int z{3};改成const int z=3;,IDE就不会报错了。我的问题是它确实是我的代码错误还是只是 IDE 中的错误?这两种初始化方法之间有什么区别吗?您的 IDE 是否报告了此错误?

#include <iostream>
using namespace std;

class Test
{
private:
const int x = 3;
int y;
const int z{3};
public:
Test(int);
int gety(){
return y;
}
};

Test::Test(int a){
y=x+4;
}

int main()
{
Test test(5);
std::cout << test.gety() << std::endl;
return 0;
}

最佳答案

whether it is indeed an error of my codes

代码没有错误,OK。

or it is just a bug in the IDE?

这是生成错误消息的任何错误。 IDE 在我的可疑列表中名列前茅,但它可能是 IDE 传递其信息的另一种工具。

Any difference between these two initialization approaches?

在此上下文中(默认成员初始值设定项),两种语法在语义上是等效的。没有区别。

关于c++ - C++11初始化变量时{}和=的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370690/

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