IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++40个入门知识点_21_ 析构函数的调用 -> 正文阅读

[C++知识库]C++40个入门知识点_21_ 析构函数的调用

1.析构函数的作用,写法及性质:

//1.作用:完成的资源的反初始化,资源的释放
//2.析构函数写法:	~CStudent() {}
//	(1)类名前加~
//	(2)通常是由编译器决定调用实际,不需要手动调用
//	(3)析构函数没有参数和返回值
//3.析构函数不能重载

2.学习视频地址:析构函数的调用
3.学习笔记:


#include <iostream>

//构造与析构

//析构函数
//1.作用:完成的资源的反初始化,资源的释放
//2.析构函数写法:	~CStudent() {}
//	(1)类名前加~
//	(2)通常是由编译器决定调用实际,不需要手动调用
//	(3)析构函数没有参数和返回值
//3.析构函数不能重载

class CStudent {

public:
	//无参构造函数
	CStudent() {
			
		//为了m_szNam创建一个堆空间(分配动态内存)
		//m_szName = (char*)malloc(255);//c语言中在堆上创建动态内存
		//free(m_szName);//c语言描述释放内存,内存没有得到有效的释放,就是内存泄漏

	}
	
	//析构函数
	~CStudent() {

		free(m_szName);//将参数的资源释放

	}

	void SetName(char* pszName)
	{
		//存在缓冲区溢出的风险,pszName并不知道指向的字符串的大小,若大于255,则可能将原来字符串末尾覆盖
		//strcpy_s(m_szName,pszName);//m_szName并未定义大小,存在溢出风险,系统提示使用strcpy_s

		}

private:
	int m_nStudID;//学号

	//指针代表指向的地址,不会限制住m_szName的大小,相对于预定义好的缓冲,避免了溢出的风险
	char* m_szName;
};

int main(int argc,char* argv[])
{
	CStudent stu;

	return 0;
}


4.特别注意:
1.使用指针的好处:

	//指针代表指向的地址,不会限制住m_szName的大小,相对于预定义好的缓冲,避免了溢出的风险
	char* m_szName;

2.C语言中堆上创建动态内存及释放:

		//m_szName = (char*)malloc(255);//c语言中在堆上创建动态内存
		//free(m_szName);//c语言描述释放内存,内存没有得到有效的释放,就是内存泄漏

3.析构函数的调用顺序:
在主函数return 0;之前进行析构

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-01 11:32:29  更:2021-11-01 11:32:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:07:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码