构造与析构调用顺序:

#include <stdio.h>class Test9_1
{
public:Test9_1 (int a){m_a = a;printf ("9_1 1111111111111111111构造函数....a: %d\n", a);}// 析构的顺序和构造的顺序相反,先构造的后析构~Test9_1(){printf ("9_1 1111111111111111111析构函数....a: %d\n", m_a);}
private:int m_a;
};// 对象初始化列表,解决一个类中有另一个没有无参构造的类的对象的初始化
class Test9_2
{
public:// 对象初始化列表,在构造函数后面加:,后面加上要初始化的对象// 对象初始化列表要比当前类的构造函数先执行// 对象的初始化先后顺序和 在对象初始化列表 的顺序无关,和在类中的声明先后顺序有关 Test9_2():m_a(10), m_c(30), m_b(20), m_ca(100){printf ("9_2 222222222222构造函数....\n");}~Test9_2(){printf ("9_2 222222222222构造函数....a: %d\n", m_ca);}
private:Test9_1 m_b;Test9_1 m_c;Test9_1 m_a;const int m_ca;
};int main9_1()
{// 类中有了构造函数以后,就没有默认的无参构造// Test9_1 a;Test9_2 a;return 0;
}

以及构造中调用构造:

#include <stdio.h>class Test10_1
{
public:// 构造函数中调用构造函数 不会达到预期的效果的Test10_1(int a, int b){m_a = a;m_b = b;Test10_1(a, b, 30);  // 匿名对象、临时对象}Test10_1 (int a, int b, int c){m_a = a;m_b = b;m_c = c;}~Test10_1(){printf ("析构*******a = %d, b = %d, c = %d\n", m_a, m_b, m_c);}void print (){printf ("a = %d, b = %d, c = %d\n", m_a, m_b, m_c);}
private:int m_a;int m_b;int m_c;
};int main10_1()
{// Test10_1(10,20);  // 临时对象 生命周期就是这一行Test10_1 a(10,20);a.print();printf ("--------------------------------\n");return 0;
}

C++之构造函数和析构函数强化相关推荐

  1. C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)

    1. 构造函数 构造函数是一种特殊的函数(方法),在根据类创建对象时被调用.构造函数是一种随着对象创建而自动被调用的函数,它的主要用途是为对象作初始化. 构造函数的名称与类的名称是完全相同的,并且不会 ...

  2. php构造和析构方法,php5构造函数与析构函数实例

    自php5起,有了构造函数与析构函数. 这使得php更富有面向对象的魅力了. 在php4时,构造函数用的是与类同名的函数来进行构造这个动作. 例如: 复制代码 代码示例: /* * myclass.p ...

  3. 提高C++性能的编程技术笔记:构造函数和析构函数+测试代码

    对象的创建和销毁往往会造成性能的损失.在继承层次中,对象的创建将引起其先辈的创建.对象的销毁也是如此.其次,对象相关的开销与对象本身的派生链的长度和复杂性相关.所创建的对象(以及其后销毁的对象)的数量 ...

  4. c++, 派生类的构造函数和析构函数 , [ 以及operator=不能被继承 or Not的探讨]

    说明:文章中关于operator=实现的示例,从语法上是对的,但逻辑和习惯上都是错误的. 参见另一篇专门探究operator=的文章:<c++,operator=>http://www.c ...

  5. C++中的构造函数VS析构函数

    1.构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行.构造函数的名称与类的名称的完全相同的,并且不会返回任何数据类型,也不会返回void.构造函数用于为某些成员变量设置初 ...

  6. 多继承的构造函数和析构函数

    //程序2:多继承的构造函数 与 析构函数 #include<iostream> using namespace std;class A { public: A() { cout<& ...

  7. c++ 构造函数析构函数 数据安全_C++知识点 16:构造函数和析构函数的语法

    #define _CRT_SECURE_NO_WARNINGS #include using namespace std;// 创建一个类( 类内包括: 2个构造函数,一个析构函数) class Pe ...

  8. 多重继承的构造函数和析构函数

    多重继承的构造函数和析构函数的执行顺序: //此处不做注释和说明了,看程序能读懂的 #include <iostream> using namespace std; class base1 ...

  9. C++中构造函数和析构函数

    [注]致力于将知识讲明白!不懂请留言! 构造函数 定义 它是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中. 另外,一个类可以有 ...

最新文章

  1. Vs2005+VSS 2005 老是出问题
  2. 十个改变了计算机世界的算法,你知道几个?
  3. poj 2398 Toy Storage (计算几何,判断点和线段关系)
  4. 谷歌开源的 GAN 库--TFGAN
  5. android 克隆对象,克隆会破坏单例对象吗?
  6. 分布式面试 - zookeeper 都有哪些使用场景?
  7. 吴恩达深度学习 —— 2.4 梯度下降
  8. Day Tips:关于搜索小问题
  9. 最大传输单元(MTU)
  10. 使用git在本地电脑与远程GitHub/gitlub库中clone别人的github上的远程仓库代码,找资源
  11. “金三银四”春招指南!在线javascript
  12. 全网首发:gstreamer如何接入RTSP流(IP摄像头)的代码范例
  13. java session 过期判断_session过期时间是多少?如何查看session是否过期?
  14. 小米笔记本用鸿蒙系统,小米笔记本Pro15.6GTX版评测 如果你主力用它来玩游戏显然不是明智之选...
  15. linux下音乐转换软件下载,Ubuntu 下把Ape格式音乐转为Mp3格式
  16. Dashboard Design 4.0(Xcelsius)数据直接绑定功能:瑕瑜互见
  17. 数学概念: 导数和切线方程
  18. html标签中写onclick,HTML a 标签添加 onclick()事件的几种方式
  19. [C#入门] 函数 | 方法
  20. 输出字符的 ASCII 码

热门文章

  1. oracle 依赖包自动安装包,ORACLE 安装提示缺少依赖包
  2. oracle查效能,【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性...
  3. python一节课多久_第一节课 python简介
  4. 计算当前时间到指定日期之间距离多久(494天11866小时711960分钟42717625秒)
  5. php批量下载网络图片,php批量下载网页图片并替换路径为本地
  6. Linux部署oracle11g,linux环境下部署Oracle11g
  7. Oracle中如何获取当天时间的最开始的时间和最结尾的时间:
  8. 国贸专业要考计算机二级,国贸专业考计算机二级有没有必要
  9. leetcode389. 找不同
  10. 算法题 如何找到数组中重复的数字