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

标签 c++ arrays class initialization

我刚试过:

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/

相关文章:

javascript - 从嵌套数组中获取非空元素的数量

c - 读取一个字符串并将其转换为 2D int 矩阵 C

c++ - 在编译时将 this 指针和类方法的参数传递给本地 lambda 函数

带有嵌套对象优化的 c++ emplace_back

c++ - const char* 没有传递完整的文件名

c - 二维数组内存分配出错时如何正确释放

c++ - 如何在 C++ 中创建一个类的多个实例

class - 模板参数 : enum, 类或枚举类

c++ - ADL 找不到重载函数

c++ - 指针内存泄漏