gpt4 book ai didi

c++ - 在 C++ 类定义中延迟数组大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:08 24 4
gpt4 key购买 nike

有没有什么方法可以延迟定义数组的大小,直到类方法或构造函数?

我的想法可能看起来像这样,但(当然)行不通:

class Test
{
private:
int _array[][];

public:
Test::Test(int width, int height);
};

Test::Test(int width, int height)
{
_array[width][height];
}

最佳答案

Daniel 所说的是,当调用 Test (width, height) 方法时,您需要为数组动态分配内存。

你会像这样声明你的二维(假设是整数数组):

int ** _array;

然后在您的测试方法中,您需要首先分配指针数组,然后为每个指针分配一个整数数组:

_array = new  *int [height];
for (int i = 0; i < height; i++)
{
_array [i] = new int[width];
}

然后当对象被释放时,您需要显式删除您分配的内存。

for (int i = 0; i < height; i++)
{
delete [] _array[i];
_array [i] = NULL;
}
delete [] _array;
_array = NULL;

关于c++ - 在 C++ 类定义中延迟数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/613739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com