c++ - 如何给类中的方阵指定大小

标签 c++ class matrix

我需要为类中的矩阵指定一个大小,但是使用 const int size 编译器会报错。有没有优雅的方式满足我的需求?

header.h

class ChessBoard {
    int matrix[<size>][<size>];
public:
    ChessBoard(int s): <size>(s) {}
};

main.cpp

#include "header.h"
#include <iostream>
int main() {
    std::cout << "Enter the size of the chessboard: ";
    int n;
    std::cin >> n;

    ChessBoard cb(n);

    return 0;
}

最佳答案

在编译时不知道大小的情况下,你不能像这样创建数组。使用指针和 new 创建数组。使用这个数组的 child 将与使用 [][] 相同。唯一的区别是,您需要删除分配的数组,第一个将“自动”删除。

int ** matrix = new int*[s];
for (int i = 0; i < s; i++) 
{
   matrix[i] = new int[s];
}

最后从内存中删除[]数组

for (int i = 0; i < s; i++) 
{
  delete[] matrix[i];
}
delete[] matrix;

关于c++ - 如何给类中的方阵指定大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16758652/

相关文章:

c++ - 如何在 Qt 中更改图表轴的标题?

python - 如何在类中实现websocket?

php - 类方法调用前 Hook

C++ 指针和动态数组以及删除运算符

c++ - 在C++程序中删除全局变量

r - 如何使矩阵的元素可调用函数

c++ - 加快地面组中所有线对之间的 L1 距离

c++ - 类模板 cpp、hpp、cpp

c++ - 在gcc中用数组参数编译extern "c"代码

类内的 Python 回调