C++类数据成员为Const数组怎么初始化

class A
{
public:
A(){}
~A(){}

private:
const int a[3];
};

const int a[3]怎么初始化?求教高手

2个回答

这是C++98/03的缺陷。
如果你的编译器支持C++11可以在构造函数初始化器中初始化类成员数组

 #include<iostream>
using namespace std;
class A
{
public:
    A() :a{1,2,3}{}
    ~A(){}
private:
    const int a[3];
};

不支持C++11的话,或者声明成static的?

 #include<iostream>
using namespace std;
class A
{
public:
    A(){}
    ~A(){}
private:
    static const int a[3];
};

const int A::a[3] = { 1, 2, 3 };
wlz966
wlz966 首先非常感谢谢“小灸舞 ”多次的热心回答。1、我试过了编译器不支持C++11。2、const int a[3];是与对象相关而不是类。3、我再请问一下是否还有其他方法
大约 4 年之前 回复

const修饰的变量只能在声明的时候初始化,const int a[3] = {1,2,3};,之后任何地方都不能修改a的内容

wlz966
wlz966 如果不是数组,我可以在初始化列表里初始化,但是数组不能在初始化列表里初始化
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问