比如说在类中定义了一个数组
int number[3]
那么在成员函数中怎么让3变为为4
使用动态分配内存
class A
{
public:
A(int n) {
_array = new int[n];
for (int i = 0; i < n; i++)
_array[i] = 0;
_size = n;
}
~A() { delete [] _array; }
void resize(int n) {
int *array = new int[n];
int m = std::min(_size, n);
int i = 0;
for (; i < m; i++)
array[i] = _array[i];
for (; i < n; i++)
array[i] = 0;
delete [] _array;
_array = array;
_size = n;
}
private:
int *_array;
int _size;
};
把3改成4啊
运行过程中改不了这个数组大小。如果想动态修改,那么定义成 int *number;然后代码中用 number = new int[4]来改变
你问的可能是数组随着成员函数的调用不断扩大的问题,可以 1 . 设置一个足够长数组,函数内计算的数组采用拷贝形式依次添加到长数组中;2.将函数类计算的数组转换成带分隔符的字符串,大类中先拼接字符串,最后将字符串转成整形数组。