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)。
為什么會發生此錯誤?
uj5u.com熱心網友回復:
此陣列的元素型別
Tile* tiles[16]
是Tile *。由于成員函式是一個常量成員函式,因此該函式應該通過參考常量元素來回傳陣列。那就是應該宣告為
Tile* const (&getTiles() const)[16]{return tiles;}
也就是說,您可能不會為存盤在陣列中的指標分配新值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354288.html
