假设我有一个基类 foo
class foo {
virtual int get() const = 0;
}
也许还有 20 个子类 foo_1, foo_2 ... 从 foo 继承,形式如下:
class foo_1 : public foo {
int get() const { return 1; }
}
...
class foo_20 : public foo {
int get() const { return 20; }
}
突然觉得生活没那么容易了!我有一个类 foo_21,它必须这样做:
class foo_21 : public foo {
int get() { member_ = false; return 0; }
bool member_;
}
问题是 get 在基类中被声明为 const,我必须在子类 foo_21 中更改一些内容。我怎么能找到绕过它的方法?