在 C++ 中,继承一个共同的祖先和继承一个接口(并且需要在派生类中定义一个方法)是否需要多重继承?例如。我是否必须执行以下操作(而不是合并MyInterface
and ParentClass
):
class MyInterface;
class ParentClass;
class DerivedClass1;
class DerivedClass2;
class SomeOtherType;
class YetAnotherType;
class MyInterface {
public:
// Must be defined in all derived classes
virtual SomeOtherType my_common_fxn(...) = 0;
...
};
class ParentClass {
private:
// Common ancestor
YetAnotherType _useful_member;
}
class DerivedClass1 : MyInterface, ParentClass {
public:
// Do some things with _useful_member, using approach #1
SomeOtherType my_common_fxn(...);
...
}
class DerivedClass2 : MyInterface, ParentClass {
public:
// Do some things with _useful_member, using approach #2
SomeOtherType my_common_fxn(...);
...
}
void fxn_or_method_using(ParentClass);
是否可以(优雅地)将和的功能合并MyInterface
到ParentClass
一个类中?(我相信作为MyInterface
ABC 我不能使用这种类型作为参数fxn_or_method_using
。)
如果这是重复的,请提前道歉-我已经搜索过,但现有的 C++ 问题似乎都没有出现。Q 和/或 A 可能已经超出了我(未经训练的)的头脑。