wlz966
wlz966
2016-05-26 07:28
采纳率: 50%
浏览 2.5k
已采纳

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

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

private:
const int a[3];
};

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qq423399099
    小灸舞 2016-05-26 08:11
    已采纳

    这是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 };
    
    点赞 2 评论
  • lx624909677
    lx624909677 2016-05-26 07:44

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

    点赞 评论

相关推荐