在类中声明可变长度数组

时间:2013-01-29 19:24:10

标签: class variable-length-array

人。这是我的代码:

class Solar_system
{
    public:

    Solar_system()
    {
        planet_no = 5;
    }

    int planet_no;
    int planet[planet_no];
};

给出错误:无效使用非静态数据成员Solar_system::planet_no

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我假设这是在C ++中。

在运行时创建数组时,应该动态分配它。像这样:

http://www.cplusplus.com/doc/tutorial/dynamic/

所以你要在类中创建一个指针,然后设置数组:

int * planet;
int planet_no;
Solar_system()
{
    planet_no = 5;
    planet = new int[planet_no];
}

答案 1 :(得分:0)

使用合适的容器,而不是自己进行内存管理。例如,std::vector

class Solar_system {
public:

    Solar_system()
    {
        planets_.resize(5);
    }

    std::vector<int> planets_;
};