c++ - C++,如何在面向对象编程中制作动态大小的二维数组?
问题描述
我目前正在使用 C++ 进行一些编程,但在尝试声明和初始化 int 类型的动态二维数组时遇到了很多麻烦。这应该是一个面向对象的程序,但我创建这种数组的唯一真实经验是将所有内容都放在一个文件中。
这是我当前的尝试,这是我的头文件中对象的类数据。(没有 get/set 方法,因为那些不应该与这个问题相关。)
class SlidingPuzzle {
private:
int height;
int length;
int** theBoard = NULL;
public:
SlidingPuzzle();
SlidingPuzzle(int, int);
~SlidingPuzzle();
};
这是构造函数'SlidingPuzzle();' 从我的源文件
SlidingPuzzle::SlidingPuzzle() {
this->height = 3;
this->length = 3;
this->theBoard = new(int*[this->height]);
for (int i = 0; i < this->height; i++) {
this->theBoard[i] = new(int[this->length]);
}
for (int i = 0; i < this->height; i++) {
for (int j = 0; j < this->length; i++) {
this->theBoard[i][j] = 0;
}
}
}
抛出异常this->theBoard[i][j] = 0;
我在这里有什么功能吗?还是我这样做完全错误?
这是我正在制作的程序的重要组成部分,如果不解决这个问题,我真的无法继续。
编辑:错误是一个小错字
for (int j = 0; j < this->length; i++) {
this->theBoard[i][j] = 0;
}
不小心放了 i 而不是 j,导致它超出范围,谢谢。
解决方案
这个循环是错误的。
for (int j = 0; j < this->length; i++) {
你必须增加j
,而不是i
。
推荐阅读
- python - 使用 HTML 标签到 DataFrame 的文本文件
- gatsby - gatsby-plugin-mdx 无法同时解析来自 frontmatter 和 body 的图像
- xml - 如何使用 XMLSlurper 修改 XML 节点属性
- r - R之间的功能未正确执行
- c# - Entity Framework Core:使用计算字段分组
- shopify - Google 跟踪代码管理器数据层变量未定义 - Shopify
- android - 如何将整数变量从活动传递到片段?
- networking - 从网络 url 迭代大型 tsv.gs
- java - Java 表达式顺序、运算符优先级和关联性之间的差异
- typescript - Typescript:如何创建一个函数来比较这两个嵌套数组?