是否可以从类创建多维数组?

时间:2012-12-29 16:50:32

标签: c++ arrays class multidimensional-array

假设你有类似的代码:

#define maxX 80
#define maxZ 80

//Sector class
class Sect{
    ...
}

Sect sects[maxX][maxZ];

这会创建一个看似合理的二维Sect数组吗?

2 个答案:

答案 0 :(得分:4)

它会创建一个Sect类的二维数组,是的。我不确定你的意思是什么"似乎是合理的",所以我无法评论。

但请考虑一下:

  • std::arraystd::vector
  • 常量而不是宏

答案 1 :(得分:2)

本声明

Sect sects[maxX][maxZ];

创建一个Sect的二维数组,其总大小(Sect元素的数量)maxX * maxZ。元素的有效索引将从sects[0][0]sects[maxX-1][maxZ-1]。尝试使用索引超出这些边界来访问数据是无效的,并且将导致未定义的行为。