C++类的私有成员中定义了一个数组,怎么在构造函数中初始化这个数组?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

C++类的私有成员中定义了一个数组,怎么在构造函数中初始化这个数组?

a123456678 2016-03-06 13:32:02 4065

写了这样一个类:

 class Base{
private:
    int r[MAX_SIZE];
    int length;
public:
    Base()
    {
        r[MAX_SIZE] = {1,2,0,5,8,9,7,3,6,4};    //编译的时候在这边出错
        length = 10;
    }
    void swap_data(int,int);
    void Show(const Base &ob);
    friend int Bubble_Sort0(Base &ob);
};

出错原因是:
1.cpp: In constructor ‘Base::Base()’:
1.cpp:13: 警告:extended initializer lists 只在 -std=c++0x 或 -std=gnu++0x 下可用
1.cpp:13: 错误:不能将‘’转换为‘int’,在 assignment 中
请问各位大神,这是什么意思?有什么解决办法?

C++
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 18:54:28

    在构造函数里,只能这样:

    r[0]=1;
    r[1]=2;
    r[2]=0;
    。。。
    诸如此类。因为构造函数的时候已经是执行部分,不是定义部分了。
    或者你可以在定义的时候这样写

    class Base{
    private:

    int r[MAX_SIZE]={1,2,0,5,8,9,7,3,6,4};
    int length;
        。。。。。。
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程