virtual-inheritance 相关问题

Virtual Inheritance用于解决与C ++中的多重继承相关的可怕钻石问题。

此示例在C ++中使用虚拟继承吗?

我可以这样做吗? A类{public:virtual void aFoo()= 0; }; B类:虚拟公共A {public:虚拟void aFoo(){...}}; D类:公共A {}; C类:公共B,虚拟公共D {} ...

回答 1 投票 1

为什么拷贝分配会导致GCC发出-Wvirtual-move-assign警告?

以下类层次结构将在BCC实例中调用移动分配时在GCC中引起[-Wvirtual-move-assign]警告。struct A {std :: vector v; };结构B:public ...

回答 1 投票 0

钻石继承中的虚拟类,在基类和大多数派生类之间具有多个类

好吧,在经典的钻石继承示例中,您有一个基类,两个从该基类继承的类,然后是另一个从这两个基类继承的类,从而实现了很好的对称性...

回答 1 投票 0

从虚拟基类继承而没有创建菱形问题的正确的初始化程序列表

因此,当您在继承中创建菱形时,派生程度最高的类需要在其初始值设定项列表中显式调用虚拟类的子对象的构造函数。但是...

回答 1 投票 0

子类地址等于虚拟基类地址?

我们都知道,当使用简单的单继承时,派生类的地址与基类的地址相同。多重继承使这不成立。是否进行虚拟继承...

回答 1 投票 6

如何检查C ++中的派生类的类型?

假设我有一些基本的抽象类和三个派生和实现其方法的不同类。是否像C#中那样有一个“类型”对象?换句话说,我如何获得所有...的实例...

回答 2 投票 1

如何在C ++中获得类型对象?

假设我有一些基本的抽象类和三个派生和实现其方法的不同类。是否像C#中那样有一个“类型”对象?换句话说,我如何获得所有...的实例...

回答 1 投票 0

我如何获得虚拟继承权?

在下面的示例中,我有我的父母班和两个孩子班。每个孩子的对象都存储在父对象的向量中。遍历向量,我只能看到父类的方法调用。...

回答 1 投票 0

虚拟继承对构造函数的影响

我已经开始学习虚拟继承(以及如何解决从具有相同父代的两个父类派生一个类的问题)。为了更好地了解其背后的机制,我将...

回答 3 投票 1

当键是虚拟继承中涉及的基类指针时,对std :: unordered_map项的访问会崩溃

以下内容适用于g ++,但使用MSVC编译时会崩溃。我不知道我的代码是否具有未定义的行为或其他任何行为。最小示例:类C1 {}; //如果没有虚拟,它将起作用。 //我需要...

回答 2 投票 2

在C ++中调用虚拟析构函数的顺序

因此,我一直试图通过C ++理解OOP概念,但是我无法获得虚拟析构函数的某些部分。我写了一个小片段:Class A {int x; public:...

回答 1 投票 0

cpp继承虚拟方法解析顺序

长期读者第一次问这里,我正在尝试通过从外部库继承来扩展外部库的功能。在该库中,有一个基类和一个从基类派生的基类,并且...

回答 1 投票 0

将对象作为虚拟类的基础存储

为什么一个人不能将对象存储为基本虚拟类?考虑下面的示例:如果Derived继承自Base #include #include ...

回答 1 投票 1

在解决钻石问题时,为什么我们需要虚拟继承两次父类?

在下面的代码中,为什么我必须同时在类B和类C中继承类A?我了解到,第一个编译器在派生类中找到目标函数。如果找不到它,则...

回答 2 投票 0

C ++无法通过虚拟基数A从基数A转换为派生类型B

我有三个班级:A类{}; B类:虚拟公共A {}; C类:虚拟公共A {}; D类:公共B,公共C {};尝试从A *到B *进行静态转换时,出现以下错误:...

回答 7 投票 51

虚拟继承中大多数派生类的大小

在下面的代码中,为什么D的大小是16个而不是8个字节?我认为,因为我们有虚拟基类,所以应该只有A的一个实例。class A {public:int x_; int y_; }; B类...

回答 1 投票 0

如何在Go中实现虚拟继承

如何在Go中实现“虚拟继承”? go lang编译器版本:“ 1.3.1 windows / amd64”,它支持Go的“虚拟继承”吗?我从未听说过像C这样的语言可以支持“虚拟”,所以...

回答 2 投票 2

(为什么)纯虚拟派生类需要虚拟基类构造函数调用?

我有一个带有菱形结构的类层次结构和一个没有默认构造函数的基类,因为它有引用成员。代码如下所示:class Base {public:Base(CustomType&...

回答 3 投票 1

虚基类初始化

我正在进行测试,我很难理解这个:#include struct Car {Car():price(20000){} Car(double b):price(b * 1.1){} double price; }; struct Toyota:......

回答 2 投票 1

使用具有虚拟多重继承的基础构造函数

运行下面的代码我期望获得以下控制台输出:B int v D而不是这样,E的构造函数调用B的默认构造函数,结果是:B D One ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.