不同的betwee {}和=当C 11初始化变量
Different betwee {} and = when C++11 initialize variables
我将clion用作IDE,它报告了IDE中的错误为
字段z必须初始化
它可以编译并运行。但是,如果我将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;
}
这是否确实是我的代码的错误
代码中没有错误,还可以。
或只是IDE中的错误?
这是生成错误消息的任何错误。IDE在我的嫌疑人列表中很高,但它可能是另一个信息IDE继电器的信息。
这两种初始化方法之间有任何区别吗?
在此上下文中(默认成员初始化器)两个语法在语义上都是等效的。没有区别。
相关文章:
- 初始值设定项列表是否只接受使用相同类型的值初始化变量?
- 在 C++ 中访问 lambda 捕获初始化变量
- 为什么C++不支持对未初始化变量进行智能分析?
- 使用 clang++ 和 g++ 在C++中初始化变量
- C++使用 lambda 初始化变量
- 如何在初始化列表中的构造函数之后初始化变量/对象?
- C++ - 输出与初始化变量不同?
- C++/Win32 构造函数不使用从对话框获取的字符串初始化变量
- 在C++中,为什么int可以使用new运算符初始化变量,而double不能
- 具有静态存储持续时间的常量初始化变量的初始化顺序
- C++ 中的初始化变量
- C++中未初始化变量的值
- 如何在需要提及需要循环声明的其他类的类中初始化变量?
- 我想知道在构造函数中初始化变量时的生命周期
- 读取恰好具有良好值的未初始化变量
- 如何在 getter 的父类中初始化变量的情况下访问子类中的变量
- 为什么在 c++ 中有多种初始化变量的方法
- 没有参数的默认构造函数是否总是初始化变量?
- 是否可以使用 lambda 初始化变量(删除复制 ctor 时)
- 使用构造函数跳闸UB的新放置后使用初始化变量