C++之构造函数和析构函数强化
来源:互联网 发布:供应链管理公司云计算 编辑:程序博客网 时间:2024/05/30 23:11
构造与析构调用顺序:
#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;}
阅读全文
0 0
- C++之构造函数和析构函数强化
- 构造函数和析构函数调用顺序强化训练
- C#OOP之六 构造函数和析构函数
- 构造函数和析构函数【c++】
- [c++]构造函数和析构函数
- 【C#】构造函数和析构函数
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- C++:构造函数和析构函数
- <C++>析构函数、虚析构函数和构造函数
- 【C/C++】构造函数和析构函数
- C/C++——构造函数和析构函数
- 虚函数之析构函数和构造函数
- C/C++——构造函数、复制构造函数和析构函数的执行时刻
- C++之析构函数和构造函数调用时间---补充(2)《Effective C++》
- 【C#】 之 构造函数
- C++_构造函数和析构函数
- C#の构造函数和析构函数
- numpy.c_和numpy.squeeze的用法
- printArea.js
- 分布式补偿事务处理方案 / 分布式计算是如何控制事务的?
- CS和BS具体是什么意思?
- hdu1575(矩阵快速幂入门题)
- C++之构造函数和析构函数强化
- 关于parallel_case和full_case的使用
- Java反射机制
- 新浪微博竞品分析
- 在同一个页面进行增删改查小结
- OpenCV公开课
- 怎样利用window.name跨域
- 跳转到webview界面
- Spring MVC源码分析