У меня есть класс, который внутренне владеет вектором foo
class bar {
private:
vector<Foo> foos_;
}
Теперь я хочу создать публичный доступ к этому вектору.Я имею в виду две версии функции:
Foo& getFoo(int index) {
// first do size checking, return ref
return foos[index];
}
и
const Foo& getFoo(int index) const {
// first do size checking, return const reference
return foos[index];
}
Есть ли недостатки этого подхода?Одним очевидным недостатком является то, что я копирую почти идентичный код просто дважды.Есть ли лучший способ сделать это?
----- edit ----- второй аксессор забывает const, обновлено