如何在对象的构造函数中初始化数组变量

时间:2017-07-15 18:30:12

标签: c++

只是编译Test,不接受初始化列表:

class Test {
    public:
        Test() {
            array[] = {1,2,3,4,5};
        }

    private:
        int array[];
};
$ g++ -Wall -std=c++11 Test.h
Test.h: In constructor ‘Test::Test()’:
Test.h:7:10: error: expected primary-expression before ‘]’ token
    array[] = {1,2,3,4,5};
          ^

如何初始化数组?

1 个答案:

答案 0 :(得分:0)

您必须提供数组的大小。语法为:Type variable_name[constexpr]

例如:

class Test {
public:
    Test() : array{1, 2, 3} { 
    }

private:
    int array[3];
};

如果您想拥有动态分配的数组,则必须使用newdelete。更好的选择是:std::vector