C++ 从两个不可更改的标头继承

C++ 从两个不可更改的标头继承,c++,inheritance,C++,Inheritance,假设我有两门课: public class1() { ... } public class2() : public class1 { ... } 这两个类是不可更改的-它们带有一个库 假设我现在想要有两个从这些类继承的类: class3继承自class1 class4继承自class2 但是,对于class4,是否可以从class1间接继承,而不是从class3继承,就像class3从class1继承一样?是的,这是可能的。但这可能不是一个好主意-您是只需要class1的

假设我有两门课:

public class1() {
    ...
}

public class2() : public class1 {
    ...
}
这两个类是不可更改的-它们带有一个库

假设我现在想要有两个从这些类继承的类:

  • class3
    继承自
    class1
  • class4
    继承自
    class2

但是,对于
class4
,是否可以从
class1
间接继承,而不是从
class3
继承,就像
class3
class1
继承一样?

是的,这是可能的。但这可能不是一个好主意-您是只需要
class1
的功能,还是还需要
class3
提供的功能?如果没有,那么就没有理由将所有的
class3
拖到新类中。

我最终没有从class2派生class4,而是在class4上复制class2的函数。这似乎奏效了。

当然有可能。问题是这在语义上是否有意义。@VioletGiraffe我不确定“在语义上有意义”是什么意思。你能告诉我你这是什么意思吗?谢谢:)class4可以从class3派生出来是的。。。无论这是否是您想要的,只有您可以告诉我们,继承意味着表示您的类所代表的概念之间的某种关系。好的,我正在尝试从QVariantAnimation和QPropertyAnimation继承,以覆盖和添加一些将在我的大多数应用程序中使用的方法。因为QPropertyAnimation继承自QVariantAnimation,所以我认为我还需要继承QPropertyAnimation的实现自QVariantAnimation的实现。是的,我确实需要class3提供的一切。