Bar*_*ski 3 c++ oop reference multidimensional-array
我读到你可以通过这一行声明对象的aray
Enemy * d = new Enemy[2];
Run Code Online (Sandbox Code Playgroud)
但是当我试图制作一个二维数组时,出现了一个无法初始化的错误.我也尝试过这个
Enemy *enemies[6][2];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何引用该数组中的每个对象,以及如何将该引用传递给函数.
The*_*Saw 10
您需要使用指向指针的指针才能生成锯齿状数组.
Enemy** d = new Enemy*[6];
for (size_t i = 0; i < 6; ++i)
d[i] = new Enemy[2];
Run Code Online (Sandbox Code Playgroud)
如果您打算制作一个固定大小的数组,您可以像创建普通数组一样创建它.
Enemy enemies[6][2];
Run Code Online (Sandbox Code Playgroud)
然后,您只需使用两个索引来引用它们.
enemies[2][1].roar();
Run Code Online (Sandbox Code Playgroud)
注意:您会发现多维数组往往会导致比它们值得更多的麻烦.维护单维数组并根据行数和列数简单地对其进行索引要简单得多.
Enemy* enemies = new Enemy[rows * cols];
Enemy* getEnemy(size_t row, size_t col)
{
return enemies + (row * cols + col);
}
Run Code Online (Sandbox Code Playgroud)