C++:析构函数

在销毁对象时,系统也会自动调用一个函数,它就是析构函数。析构函数没有返回值,它的函数名是在类名前加一个 ~ 符号。析构函数没有参数,不能被重载,这也就意味着析构函数只有一个,若没有写虚构函数,则会有一个默认的析构函数。

例如:

cpp 复制代码
#include<iostream>
using namespace std;

class AA
{
public:
	int* p;
public:
	AA()
	{
		p = new int(100);
		cout << "AA" << endl;
	}
	~AA()
	{
		delete p;
		cout << "~AA" << endl;
	}
public:
	void Show()
	{
		cout << *p << endl;
	}

};

int main()
{
	int* pp = NULL;
	{
		AA aa;
		aa.Show();
		pp = aa.p;
	}

	cout << *pp << endl;//若无析构函数*pp=100

	return 0;
}
相关推荐
朔北之忘 Clancy2 小时前
2024 CSP-J 第二轮真题解析
c++·算法·青少年编程·noip·csp·信奥赛·noi
Lazionr2 小时前
set和map的使用——从基础接口到实际应用
c++
YYYing.2 小时前
【设计模式系列 (五) 】原型模式
开发语言·后端·设计模式·原型模式·c/c++
重生之小比特3 小时前
【C++进阶】哈希表实现
开发语言·c++·哈希
m0_380743873 小时前
VisualStudio中OpenCV的创建与配置使用小结
开发语言·c++
凉茶钱3 小时前
【C++】动态内存管理完整解析:从内存划分到 new delete 底层原理
c语言·开发语言·c++·内存管理·动态内存
cu1433 小时前
细谈GM8775C的具体功能和应用
c语言·c++·人工智能·嵌入式硬件
小七在进步3 小时前
类和对象(五)
java·开发语言·算法
无名猿3 小时前
std::optional 完全指南:别再用 -1 和 nullptr 表达「没有值」
c++·标准库·现代c++·语法基础
Rebecca_aLi3 小时前
码匠教育:零基础学 Python,标识符到循环全套基础语法解析
开发语言·python·正则表达式