我正在尝试定义一个类(其最小版本)如下:
class Base{
int i;
public:
Base(int i_): i(i_){}
int& at(size_t index) {return i;}
const int& at(size_t index) const {return i;}
};
(是的。它有一个index
,因为我真正想要创建的类总是需要它,所以请想象一下这是必要的)
我想继承这样的课程:
class SonClass : public Base{
public:
SonClass(int i): Base(i){}
int& at(size_t index){
do_something_more();
return Base::at(index);
}
const int& at(size_t index) const {
do_something_more();
return Base::at(index);
}
};
似乎at
函数的版本都相同。反正要避免这种情况吗?还是有更好的方法呢?似乎很基本,但是由于这个原因,我喜欢5个功能都相同的东西。