当前位置: 首页 > news >正文

不错的网站开发公司以橙色为主的网站

不错的网站开发公司,以橙色为主的网站,手机商城网站制作,广州网站建设团队文章目录 一、继承 组合 模式的类对象 构造函数和析构函数调用规则1、场景说明2、调用规则 二、完整代码示例分析1、代码分析2、代码示例 一、继承 组合 模式的类对象 构造函数和析构函数调用规则 1、场景说明 如果一个类 既 继承了 基类 ,又 在类中 维护了一个 其它类型 的…

文章目录

  • 一、继承 + 组合 模式的类对象 构造函数和析构函数调用规则
    • 1、场景说明
    • 2、调用规则
  • 二、完整代码示例分析
    • 1、代码分析
    • 2、代码示例





一、继承 + 组合 模式的类对象 构造函数和析构函数调用规则




1、场景说明


如果一个类

  • 继承了 基类 ,
  • 在类中 维护了一个 其它类型 的 成员变量 ,

那么 该类 的 构造 与 析构 , 就需要涉及到

  • 类 本身 的 构造函数 和 析构函数 ,
  • 父类 的 构造函数 和 析构函数 ,
  • 类 成员变量 的 构造函数 和 析构函数 ;

2、调用规则


在 继承 + 组合 的情况下 , 构造函数 与 析构函数 调用规则如下 :

  • 构造函数 : 父类 -> 成员 -> 自身 ;
    • 首先 , 调用 父类 构造函数 ;
    • 然后 , 调用 成员 构造函数 ; 也就是 成员变量 类型的 构造函数 ;
    • 最后 , 调用 自己 构造函数 ; 自身定义的 构造函数 ;
  • 析构函数 : 自身 -> 成员 -> 父类 ;
    • 首先 , 调用 自己 析构函数 ; 自身定义的 析构函数 ;
    • 然后 , 调用 成员 析构函数 ; 也就是 成员变量 类型的 析构函数 ;
    • 最后 , 调用 父类 析构函数 ;




二、完整代码示例分析




1、代码分析


在下面的代码中 ,

继承关系 : C 类 继承了 B 类 class C : public B , B 类 继承了 A 类 class B : public A ;

组合关系 : D 类 是一个普通类 , 在 C 类中维护了一个 D 类成员变量 ;

class C : public B {
public:C(int a, int b, int c) : B(a, b){this->z = c;cout << "C 构造函数调用" << endl;}~C(){cout << "C 析构函数调用" << endl;}
public:int z;D d;
};

可根据下面的调用规则 , 分析出 C 类对象中 , 涉及到的 父类构造/析构函数 , 自身构造/析构函数 , 成员变量 构造/析构函数 的调用顺序 ;

  • 构造函数调用顺序 : 父类 -> 成员 -> 自身 ;
  • 析构函数调用顺序 : 自身 -> 成员 -> 父类 ;

2、代码示例


代码示例 :

#include "iostream"
using namespace std;class A {
public:A(int a){this->x = a;cout << "A 构造函数调用" << endl;}~A(){cout << "A 析构函数调用" << endl;}
public:int x;
};class B : public A {
public:B(int a, int b) : A(a){this->y = b;cout << "B 构造函数调用" << endl;}~B(){cout << "B 析构函数调用" << endl;}
public:int y;
};class D
{
public:D(){cout << "D 构造函数调用" << endl;}~D(){cout << "D 析构函数调用" << endl;}
};class C : public B {
public:C(int a, int b, int c) : B(a, b){this->z = c;cout << "C 构造函数调用" << endl;}~C(){cout << "C 析构函数调用" << endl;}
public:int z;D d;
};int main() {C obj(1, 2, 3);cout << "obj.x = " << obj.x <<" , obj.y = " << obj.y <<" , obj.z = " << obj.z << endl;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 : 下面的代码中 , 分析构造函数调用顺序 ;

  • A 和 B 的构造函数 , 是 父类构造函数 ;
  • D 构造函数 , 是 成员构造函数 ;
  • C 构造函数 , 是 自身构造函数 ;

构造函数的调用顺序为 : 父类 -> 成员 -> 自身 , 符合上述的调用原则 ;

然后分析 析构函数 调用顺序 ;

  • C 析构函数 , 是 自身构造函数 ;
  • D 析构函数 , 是 成员构造函数 ;
  • A 和 B 的析构函数 , 是 父类构造函数 ;

析构函数的调用顺序为 : 自身 -> 成员 -> 父类 , 符合上述的调用原则 ;

A 构造函数调用
B 构造函数调用
D 构造函数调用
C 构造函数调用
obj.x = 1 , obj.y = 2 , obj.z = 3
Press any key to continue . . .
C 析构函数调用
D 析构函数调用
B 析构函数调用
A 析构函数调用

在这里插入图片描述

http://www.yayakq.cn/news/539528/

相关文章:

  • 如何选择番禺网站建设北京住房投资建设中心网站首页
  • wordpress后台系统有什么办法可以在备案期间网站不影响seo
  • 公司网站建设详细方案wordpress批量删除图片
  • 网站建设需要编程吗wordpress xml 导入失败
  • 做旅游网站需要的背景网站添加icp备案号
  • 网站建设兆金手指排名合肥制作app的公司
  • 如何做网站推广优化2345搜索
  • 怎么提高网站的流量网站品牌形象设计怎么做
  • 很简单的做设计的网站网站有备案号吗
  • 中企建设网站英文网站模板制作
  • 学校网站建设板块分析施工员证怎么查询网站
  • 沈丘网站建设长沙市建网站
  • 重庆网站建设培训学校网站策划方案 优帮云
  • 做网站需要什么样的服务器白杨seo课程
  • 房源开发网站龙岩网红
  • 2017做网站还赚钱吗网上自学电脑课程
  • 泸州市建设局网站wordpress mp4
  • 怎样建设简单的网站哪里有做标书
  • 做网站能赚到钱吗爱主题 wordpress
  • dedecms三合一网站源码佛山市建设网站
  • 做好公司网站如何建设盈利网站
  • 哪些网站可以做设计地产网站建设公司
  • 用织梦同时做两个网站网站建设-应酷
  • 社交网站上的商城怎么做雅安网站开发
  • 网站运营建站优化专家网站案例 中企动力技术支持
  • 自己怎样做优惠券网站美篇制作app下载安装免费
  • 做民宿加盟哪些网站比较好知名设计公司
  • 设计实例网站网页设计与网站建设案例课堂
  • 个人备案可以做门户网站吗wordpress页面发布不
  • 广东融都建设有限公司 公司网站西安市城乡建设管理局网站