我正在尝试创建一个同时代表两种不同行为的类。如下所示:
class IMouse {
public:
virtual void Walk() const = 0;
};
class TSimpleMouse : public IMouse {
public:
void Walk() const;
};
class IBat {
public:
virtual void Fly() const = 0;
};
class TSimpleBat : public IBat {
public:
void Fly() const;
};
template <class TMouse, class TBat>
class TSuperCreatureImpl {
public:
void Do() const {
Walk();
Fly();
}
};
typedef TSuperCreatureImpl<TSimpleMouse, TSimpleBat> TSimpleSuperCreature;
这对我来说很重要,因为我想做不同的 typedefs。这似乎很简单。
但我也希望 Fly 和 Walk 方法具有参数(例如速度)。我应该如何修改架构以便有机会为不同的生物使用许多 typedef?
如果没有 Mouse 和 Bat 的默认构造函数,如何更改架构?
非常感谢。