我有一个抽象类 AUnit,它带有像这样的虚拟纯变量和 getter/setter
class AUnit {int var... int getVar() const = 0 ... }
所有数据都受保护:除了构造函数和析构函数。
我像这样的孩子有狂暴和坦克
class Berserk : public AUnit
{
...
private:
int getVar() const;
在他们的 .cpp 中,我编写了 getter 和 setter 的代码。没什么特别的。
但我有另一个像这样的课程(例如 foo)
class Foo : public Berserk, public Tank
谁需要访问 Berserk 或 Tank 中的数据,所以我通过 protected 更改了 private 关键字,这是错误:
Tank.hpp:36:25: erreur: ‘virtual int Tank::getY() const’ is protected
error inside the context
首先,我只是尝试使用 AUnit getter 访问数据,但是由于虚拟纯和抽象概念的原因,我想在非纯和公开的 AUnit 的 getType 之后以他的真实类型重新解释我的 AUnit。还是不行,这是我之前告诉你的方案。
这只是古典遗产,我可以帮忙吗?