多重继承的使用场景:仅允许最多一个基类中包含实现,其他基类都是以Interface为后缀的纯接口。
class BaseClassA {
public:
virtual void doSomething() = 0;
void commonFunction() { /* 实现 */ }
};
class BaseClassB {
public:
virtual void doSomething() = 0;
void anotherCommonFunction() { /* 实现 */ }
};
class DerivedClass : public BaseClassA, public BaseClassB {
public:
void doSomething() override { /* 实现 */ }
};
class IBaseInterface : public IInterface {
public:
virtual void doSomething() = 0;
};
class BaseImpl {
public:
void commonFunction() { /* 实现 */ }
void anotherCommonFunction() { /* 实现 */ }
};
class DerivedClass : public IBaseInterface, public BaseImpl {
public:
void doSomething() override { /* 实现 */ }
};