我正在实现一个类 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 对象被存储为指针。但是,操作符 [] 的实现存在问题(对类型“const Bird”的引用无法绑定到“const value_type”(又名“Bird *const”)的左值)。
如何正确实现 operator[]?