析构函数(destructor)
来源:互联网 发布:电脑运行网络命令大全 编辑:程序博客网 时间:2024/06/13 06:17
成员函数的一种:(消亡前的善后工作)
1.名字与类名相同
2.在前面加“~”
3.没有参数和返回值
4.一个类最多只有一个析构函数
编译器自动生成缺省的析构函数且自动调用
观察调用析构函数的次数
析构函数的调用顺序:
#include<iostream>using namespace std;class demo{ int id; public: demo(int i){ id = i; cout << "id =" << id << "constructed" << endl; } ~demo(){ cout << "id =" << id << "destructed" << endl; }};demo d1(1);void func(){ static demo d2(2); demo d3(3); cout << "func" <<endl;}int main(){ demo d4(4); d4 = 6; cout << "main" << endl; { demo d5(5); } func(); cout << "main ends" << endl; return 0;}
由结果易知:
- d1是全局变量,最先声明,最后释放
- d4在main函数结束后释放,结果不显示在控制台中
- d4被赋值,临时对象申请后立即被释放
- d5声明以后作用域立即结束,所以紧接着释放
- 调用func,静态变量d2声明,在主函数结束时才会被释放
- d3在func函数结束时被释放
C++设计的一个思想:最先声明的最后被释放
阅读全文
0 0
- destructor(析构函数)
- 析构函数DESTRUCTOR
- 析构函数(destructor)
- 析构函数(destructor)
- C++13.3 析构函数destructor
- C++/copy/Destructor(析构函数)
- 北大 C++ 3.3 析构函数(Destructor)
- C++析构函数(Destructor)
- C++析构函数(Destructor)
- 构造函数 与 析构函数 constructor and destructor
- C#析构函数(destructor)和终结器(Finalizer)
- C# 析构函数(destructor)和终结器(Finalizer)
- C#析构函数(destructor)和终结器(Finalizer)
- C++面向对象析构函数用法,destructor
- C#基础之构造函数(Constructor)与析构函数(Destructor)
- C++ 构造函数constructor 与 析构函数destructor 的区别
- 构造函数(Constructor)析构函数(Destructor)怎么用?
- day05 this指针和常函数、析构函数(Destructor) 、拷贝构造和拷贝赋值
- Java密码学
- 数据结构-AVL树和红黑树的对比
- 拥抱.NET Core系列:Logging (1)
- 设计模式_简单工厂模式(2)
- 树莓派3-搭建SAMBA服务器
- 析构函数(destructor)
- 数据对象
- python 获取指定文件夹下所有文件名称并写入列表
- 二、hibernate一对多关联
- halcon始终显示十字叉
- Hdu 2841
- zabbix客户端端部署 for CentOS7
- 删
- xml school