class Board{
private:
Shape shapes[100];
Tile* tiles[16];
public:
const Shape (&getShapes() const)[100]{return shapes;}; // (1)
const Tile* (&getTiles() const)[16]{return tiles;}; // (2)
};
我创建了一个名为Board
的类,它有两个通过引用返回数组的方法。
方法(2(报告错误:
在类型为"的绑定引用中丢弃的限定符;const Tile*(&([16]";到"类型的初始化器;Tile*const[16]";
我通过将const
写入方法(1(中的返回类型来修复此错误,但它不适用于方法(2(。
为什么会出现这种错误?
此数组的元素类型
Tile* tiles[16]
是CCD_ 3。由于成员函数是一个常量成员函数,因此该函数应通过引用常量元素来返回数组。也就是说,它应该像一样声明
Tile* const (&getTiles() const)[16]{return tiles;}
也就是说,您不能为存储在数组中的指针分配新值。