C++中类中同时存在继承以及组合时候,构造函数的构造顺序

C++中类中同时存在继承以及组合时候,构造函数的构造顺序

大家好,又见面了,我是全栈君。

C++的一大特点就是面向对象,面向对象主要就是类的一些相关特性(封装、继承、多态)。

那么在类的继承以及类的成员属性包含其他类实例对象的时候,构造函数的构造顺序到底是怎么样子的呢?相信大家都知道,实例化对象首先需要的是调用自身的构造函数进行分配内存空间之后进行实例化对象,这就是构造函数的整个过程(两步)。

那么当一个类对象既包含了继承关系同时也在自身的成员属性中包含了其他类对象的实例化的时候,那么这时候实例化该类的对象时候,构造函数的顺序会是怎么样子的呢?下面来看看这一段代码吧。


#include "iostream"

using namespace std;

class A { 
   
public:
	A() { 
   
		cout << "A 类的构造函数" << endl;
	}
private:
	int i_a;
};

class B { 
   
public:
	B() { 
   
		cout << "B 类的构造函数" << endl;
	}
private:
	int i_b;
};

class C :public A{ 
     // 类C继承与类A(C:派生类、子类;A:基类父类)
public:
	C() { 
   
		cout << "C 类的构造函数" << endl;
	}
private:
	B b;          // 类C中组合有B类对象成员
	int i_c;
};

int main()
{ 
   
	C c;              // 实例化一个C类的对象
	system("pause");
	return 0;
}

这就是一个简单的继承加上组合的小demo,从上面的小demo中可以看出类C继承与类A,并且在类C中组合了类B的实例化对象,那么我们可以直接到以下的结果,可以得知。

A 类的构造函数
B 类的构造函数
C 类的构造函数

构造顺序是首先构造继承的父类,其次构造组合中的实例对象,最后才是构造自己本身。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115096.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android:layout_weight详解_什么是layout_weight

    layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。 所有的视图都有一个layout_weight值,默认为零,意思是需要显示.多大的视图就占据多大的屏幕空间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体, layout_weight值和在其它视图屏幕布局的layout_weight值

    2022年3月9日
    53
  • 等价类测试用例设计原则_边界值法测试用例

    等价类测试用例设计原则_边界值法测试用例一、等价类划分法简介1.1什么是等价类划分法?  等价类划分法是黑盒测试中非常重要的测试方法,采用等价类划分法时,无需考虑程序内部结构,设计测试用例是依据游戏策划案进行设计的  等价类是输入条件的一个子数据集合,该输入集合中的数据对于揭示程序中的错误是等价的,从每一个子集中选取少数代表性的数据,从而进行梳理,组合成测试用例  等价类划分法分为:有效等价类、无效等价类。  有效等价类:有效等价类代表对程序的有效输入数据  无效等价类:无效等价类则是以任何方式的无效输入数据。  有效

    2022年10月18日
    3
  • pycharm恢复初始设置windows_pycharm中恢复索引

    pycharm恢复初始设置windows_pycharm中恢复索引在windows下,pycharm恢复初始设置C:\User\(用户名)\.pycharmxxxx

    2025年7月30日
    5
  • 机器学习之朴素贝叶斯算法详解

    机器学习之朴素贝叶斯算法详解1-1基本流程朴素贝叶斯公式:P(A|B)=P(A)P(B|A)P(B)P(A|B)=P(A)P(B|A)P(B)P(A|B)=\frac{P(A)P(B|A)}{P(B)}一、概率基础知识:条件概率是指事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为:P(A|B),读作“在B条件下A的概率”。若只有两个事件A,B,那么:P(AB)=P…

    2025年8月14日
    6
  • dubbo负载均衡策略(XML、注解、SpringBoot配置)「建议收藏」

    dubbo负载均衡策略(XML、注解、SpringBoot配置)「建议收藏」本示例是在上一篇文章中搭建的实例来讲解,详情先查看:SpringBoot集成dubbo最新实战教程:dubbo-spring-boot-starter一.简介在集群负载均衡时,Dubbo提供了多种均衡策略,默认为random随机调用。二.负载均衡策略1.RandomLoadBalance随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均…

    2022年7月27日
    4
  • JS创建和存储 cookie的一些方法

    JS创建和存储 cookie的一些方法

    2021年10月31日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号