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;
}
相关推荐
兰令水12 分钟前
leecodecode【回溯子集】【2026.6.4打卡-java版本】
java·开发语言·深度优先
bubiyoushang88812 分钟前
基于 C/C++ 的 MQTT 物联网通信协议实现
c语言·c++·物联网
fox_lht14 分钟前
14.3.重构
开发语言·后端·rust
牛油果子哥q34 分钟前
【C++ const 】全场景深度精讲:修饰规则、底层常量折叠、指针 / 引用 / 成员函数实战、易错坑点与工程代码实现
开发语言·c++
郝学胜_神的一滴40 分钟前
Qt 高级开发 025:打造优雅界面的艺术与高效重构之道
c++·qt
天天进步20151 小时前
Python全栈项目--社区问答平台
开发语言·python·django
牛油果子哥q1 小时前
【C++指针与引用】C++指针与引用底层彻底精讲:本质区别、易错深坑、底层内存模型、工程选型、笔试面试满分解析
c++·面试
skywalk81631 小时前
Tree-sitter是一个解析器生成器工具和一个增量解析库。它可以为源文件构建具体的语法树,并在编辑源文件时有效地更新语法树
开发语言·编程
十五年专注C++开发1 小时前
CMake实践:VS2019控制台程序隐藏控制台方法
c++·windows·cmake·控制台隐藏
AI视觉网奇1 小时前
Bambu Studio 发现 xx个开放边
开发语言·人工智能·python