multiple-inheritance相关内容

在Python中的多重继承中,父类A和B的初始化是同时完成的吗?

我有一个关于子类的实例化过程的问题,这个子类分别是从不带arg的父类A和带kwargs的父类B继承的。 在下面的代码中,我不知道为什么在创建Child实例时,执行ParentB的set_kwargs()方法,而初始化ParentA。 (特别是,为什么结果显示Child receive {}?如何避免此结果?) 如有任何帮助,我们将不胜感激。 谢谢! class Gra ..
发布时间:2022-08-24 11:13:43 Python

编译时计算基类的偏移量

我想知道是否可以在编译时计算基类偏移量。当然,在运行时很容易做到这一点,因为可以利用static_cast的功能,而偏移量只是指向派生类的指针的基指针之间的差异。 我第一次尝试在编译时获取它,结果如下所示: struct InterfaceRoot {}; struct IInterface1 : InterfaceRoot { virtual void MethodI1() ..
发布时间:2022-08-24 10:37:37 C/C++开发

在 Java 类中实现的具有相同方法签名的两个接口

我有两个 Java 接口和一个实现类. (我已经使用 Eclipse 直接运行程序,并且我没有尝试通过从命令行显式编译来检查任何编译器警告等.) 为什么它们可以毫无问题地运行?为什么 Java 允许这样做,即使它满足两个接口的“约定"但在实现类时会产生歧义? 更新了示例. 公共接口 CassettePlayer {无效播放();}公共接口 DVDPlayer {无效播放();} ..

C++ 多重虚拟继承与 COM

网络上充斥着对“可怕的钻石问题"的解释.StackOverflow 也是如此.我想我理解这一点,但我无法将这些知识转化为理解相似但不同的东西. 我的问题从纯 C++ 问题开始,但答案很可能会扩展到 MS-COM 细节.一般问题的问题是: class Base {/* 纯虚拟的东西 */};class Der1 : Base/* 非虚拟!*/{/* 纯虚拟的东西 */};class Der2 ..
发布时间:2022-01-14 12:19:29 C/C++开发

为什么在具有多个接口() 的对象中实现 QueryInterface() 时我需要显式向上转换

假设我有一个实现两个或多个 COM 接口的类: class CMyClass : public IInterface1, public IInterface2 {}; 我看到的几乎所有文档都表明,当我为 IUnknown 实现 QueryInterface() 时,我明确地将 this 指针向上转换为其中一个接口: if(iid == __uuidof(IUnknown)){*ppv = s ..
发布时间:2022-01-14 11:34:32 C/C++开发

多重继承元类冲突

我需要一个类的双重继承.我尝试了几种语法,但我不明白元类的概念. 从 PyQt5.QtGui 导入 QStandardItem从配置解析器导入配置解析器类 FinalClass(ConfigParser, QStandardItem):def __init__(self, param):ConfigParser.__init__(self)QStandardItem.__init__(self) ..
发布时间:2022-01-12 22:21:09 Python

警告 C4407 会导致哪些问题?

我通过多重继承在一些 MFC CWnd 派生对象上使用纯虚拟接口得到了一些警告.我相信这是由定义需要为消息映射实现的方法引起的. 警告 C4407:在指向成员表示的不同指针之间强制转换,编译器可能会生成不正确的代码 这听起来不仅仅是一个警告,更像是可能导致堆损坏的东西.那么有没有另一种方法来做类似下面的事情,不会导致 MFC 动态向下转换宏比平时更阻塞? 类 ISomeInterface{上 ..
发布时间:2022-01-12 15:18:00 C/C++开发

Visual Studio 编译器警告 C4250(“class1":通过优势继承“class2::member")

以下代码生成警告 C4250.我的问题是,最好的解决方案是什么? A 类{虚空func1();}B类:公共A{}C类:公共A{虚空func1();}D类:公共B,公共C{}int main(){Dd;d.func1();//引起警告} 根据我所读到的,应该可以这样做: class D : public B, public C{使用 B::func1();} 但是,这实际上并没有做任何事情. ..
发布时间:2022-01-05 19:22:06 C/C++开发