Birdオブジェクトへのポインタを格納できるクラスAviaryを実装しています。今、私は次のものを持っています:
class Aviary {
public:
const Bird &operator[](const size_t index) const {
return birds[index];
}
Bird &operator[](const size_t index) {
return birds[index];
}
private:
std::vector<Bird*> birds;
Birdオブジェクトは、オブジェクトのスライスを回避するためにポインタとして保存されます。ただし、operator []-の実装には問題があります(タイプ「constBird」への参照は「constvalue_type」(別名「Bird * const」)の左辺値にバインドできませんでした)。
operator []を適切に実装するにはどうすればよいですか?