Class 在类中声明可变长度数组
伙计们。以下是我的代码:Class 在类中声明可变长度数组,class,variable-length-array,Class,Variable Length Array,伙计们。以下是我的代码: class Solar_system { public: Solar_system() { planet_no = 5; } int planet_no; int planet[planet_no]; }; 给出错误:非静态数据成员的使用无效Solar\u system::planet\u no 任何帮助都将不胜感激 > P>我假设这是在C++中。< /P> 在运行时创建阵列时,应动态分配阵列。像这样
class Solar_system
{
public:
Solar_system()
{
planet_no = 5;
}
int planet_no;
int planet[planet_no];
};
给出错误:非静态数据成员的使用无效Solar\u system::planet\u no
任何帮助都将不胜感激 > P>我假设这是在C++中。< /P> 在运行时创建阵列时,应动态分配阵列。像这样: 因此,您需要在类中创建一个指针,然后设置数组:
int * planet;
int planet_no;
Solar_system()
{
planet_no = 5;
planet = new int[planet_no];
}
使用合适的容器,而不是自己管理内存。例如
class太阳能系统{
公众:
太阳系
{
调整大小(5);
}
矢量行星;
};
您想做什么?您尝试了什么方法来解决这个问题?您能否告诉我以后是否应该删除阵列,如果是,何时删除。是的,应该删除阵列。类析构函数是删除它的好地方~太阳系(){delete[]planet;}总是这样叫它。如果需要调整/重新创建阵列的大小,您可以在将其设置为新的内存块之前将其删除。
class Solar_system {
public:
Solar_system()
{
planets_.resize(5);
}
std::vector<int> planets_;
};