2016 - 2024

感恩一路有你

虚基类的关键字 有虚基类时,多继承构造函数调用顺序?

浏览量:2559 时间:2021-03-15 14:48:26 作者:admin

在任何非虚拟基类构造函数之前调用虚拟基类的构造函数。如果构造中包含多个虚拟基类,则它们的调用顺序为声明顺序。如果虚拟类是从非虚拟类派生的,则首先调用非虚拟类的构造函数。

以下是一个示例:

X类:公共y,虚公共Z

x one

调用顺序如下:

Z()//虚基类初始化

y()//非虚基类

x()//继承类

有虚基类时,多继承构造函数调用顺序?

根据C对虚基类构造函数的“最新一代派生”调用规则,所有虚基类构造函数必须系统中由A构造的虚基类有两个:C和E,但由于E是C的基类,所以首先调用E的构造函数(这是第一个类),C有一个基类D,它也调用构造函数(这是第二个类),然后调用C的构造函数(这是第三个类)。

C初始化后,B初始化,B有两个基类D和E。E是已初始化的虚拟基类,然后是基类D,应首先调用其构造函数(这是第四个),然后调用B自己的构造函数(这是第五个)。c和B都被初始化,最后调用a的构造函数(这是第六个)。

所以整个顺序是e,D,C,D,B,a。

C 多重继承构造函数的调用次序问题?

首先要知道的是,C是为数不多的支持“多重继承”的语言之一。多重继承带来了许多问题,其中之一就是钻石继承:classAclassB:公共许可证:公共ICAD类:公共为了解决这个问题,引入了虚拟基类的概念。在实际开发中,这种情况是可以避免的。基本上,它们继承一个类并实现多个“接口”。在C语言中没有接口概念,但是只有纯虚函数的类本质上是一个接口。在C中没有实现接口的概念,但是继承一个只有纯虚函数的类本质上就是实现一个接口。这就是C中多重继承的一般用法。这降低了设计的复杂性,减少了问题的发生

虚基类的关键字 虚基类的构造函数调用一次吗 什么叫虚基类

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。