两个类可以同时继承吗?

Bao*_*ing 2 c++ class

我今天没有任何编码问题,但我需要一些帮助来解释我正在努力寻找答案的概念。问题是:

你可以让 X 类同时继承 Y 类,Y 类同时继承 X 类吗?用代码解释。

for*_*818 5

评论中已经说过:(公共)继承模型是“是”关系。

暂时忘掉 C++ 并考虑继承的抽象概念及其建模的内容。如果A继承自,B则任何实例A都是 a B。因此 的所有实例的集合是 的所有实例的A子集B。如果所有实例A都实例B的所有实例B都的情况下A,则不需要继承之间的关系进行建模AB,因为他们是完全一样的类型。

现在又是 C++。这个:

 struct A : B {};
 struct B : A {};
Run Code Online (Sandbox Code Playgroud)

不可能有两个原因。首先,AB定义中继承B必须是已知的,并且BA定义中继承A必须是已知的。其次,每个实例A包含一个类型的子对象B,并且每个B包含一个类型的子对象A,每A....循环往复。这不可能。