gpt4 book ai didi

c++ - 在类中初始化空数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:50 25 4
gpt4 key购买 nike

我刚试过:

class Test
{

public:
int iArray[][];

}

...这不可能吗?我必须设置一个常量值吗?

喜欢:

class Test
{
public:
const int iArray[5][4];
}

我想稍后再定义 [x][y],只需在那里放置位置即可。否则它不会是“动态的”,我不想使用 vector ,因为我希望能够通过“X”和“Y”访问值。

最佳答案

我认为实现此目标的更好方法是使用指针。你可以这样做。

#include <cstdlib>
#include <iostream>

using namespace std;

class PointerTest {

private:
int** array;
int x, y;
public :
void setValue(int row, int col,int value);
int getValue(int row, int col);
PointerTest(int row, int col);
~PointerTest() {
for(int i=0;i<x;i++) {
delete array[y];
}
}


};
PointerTest::PointerTest(int row, int col) {
x=row, y=col;
for(int i=0;i<row;i++) {
*array=new int[col];
}
}


void PointerTest::setValue(int row, int col, int value) {
*(array[row])=value;
}

int PointerTest::getValue(int row, int col) {
return *(array[row]);
}

int main(int argc, char *argv[])
{
PointerTest* t=new PointerTest(4,5);
t->setValue(0,0,464);
cout<<"The value in array: "<<t->getValue(0,0)<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}

关于c++ - 在类中初始化空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005112/

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