析构函数:在主程序文件中实现对象的调用

news/2024/7/24 10:21:50 标签: c++, 算法, 开发语言
//析构函数:在主程序文件中实现对象的调用:
#include<iostream>
using namespace std;
#include"Person.h"
void main(){
	CPerson p;
	p.ShowFrameMessage();
	p.ShowStartMessage();
	p.ShowFrameMessage();
}

//Person.h声明定义:

class CPerson
{
	pubilc:
	CPerson();
	~CPerson();
	char *m_pMessage();
	void ShowStartMessage();
	void ShowFrameMessage();
}; 

        析构函数是一种特殊的成员函数,它的作用是在对象被销毁时执行清理操作。例如,释放对象使用的资源(如内存、文件句柄等)或者执行其它必要的清理操作。析构函数一般与构造函数成对存在,用于构造函数中分配的资源的释放。

在C++中,析构函数的特征如下:

  • 函数名与类名相同,前面加上符号“~”(波浪线);
  • 没有返回值,也不需要手动调用;
  • 一个类可以有多个析构函数,但只能有一个默认析构函数;
  • 默认析构函数会自动调用父类和成员对象的析构函数。
class ClassName {
public:
    // 构造函数
    ClassName();
    
    // 析构函数
    ~ClassName();
    
    // 其他有用的成员函数
};

 

#include <iostream>
#include <cstring>
using namespace std;

class MyString {
private:
    char* str;
public:
    // 构造函数
    MyString(const char* s) {
        str = new char[strlen(s) + 1];
        strcpy(str, s);
    }
    
    // 析构函数
    ~MyString() {
        cout << "释放字符串:" << str << endl;
        delete[] str;
    }
};

int main() {
    MyString str("Hello, World!");   // 创建MyString对象
    return 0;
}

输出:

释放字符串:Hello, World!

在这个示例中,当MyString对象被销毁时,析构函数会自动调用,释放字符串的内存。


http://www.niftyadmin.cn/n/5090658.html

相关文章

YoloV8改进策略:SwiftFormer,全网首发,独家改进的高效加性注意力用于实时移动视觉应用的模型,重构YoloV8

文章目录 摘要论文:《SwiftFormer:基于Transformer的高效加性注意力用于实时移动视觉应用的模型》1、简介2、相关研究3、方法3.1、注意力模块概述3.2、高效的加性注意力3.3、SwiftFormer 架构4、实验4.1、实现细节4.2、基线比较4.3、图像分类4.4、目标检测和实例分割4.5、语义…

tomcat启动jvm内存设置

Linux&#xff1a;   在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh添加&#xff1a; JAVA_OPTS"-Xms512m-Xmx1024m" 要加“m”说明是MB&#xff0c;否则就是KB了&#xff0c;在启动tomcat时会报内存不足。   -Xms&#xff1a;初始值   -Xmx&am…

Linux-CentOS8-Oracle19c 安装详解

Linux-CentOS8-Oracle19c安装图解 文章目录 Linux-CentOS8-Oracle19c安装图解预备1. Oracle19c 安装手册&#xff1a;2. 安装虚拟机&#xff1a;4G内存&#xff0c;2*2核心&#xff0c;30G3. 下载CentOS8镜像。4. 开始准备预安装5. 修改Oracle账户密码6. 修改SELINUX值在文件&a…

网络链接失败怀疑是服务器处于非正常状态?如何用本地电脑查看服务器是否正常?

网络链接失败怀疑是服务器处于非正常状态&#xff1f;如何用本地电脑查看服务器是否正常&#xff1f; 网页会出现链接失败&#xff0c;可以实时用cdm大法&#xff0c;cdm可以更好的排查字节数据的返回&#xff0c;可以让我们更好的要检查服务器是否处于正常状态&#xff0c;接下…

Java架构师详细设计

目录 1 导学2 详细设计的基本任务2.1 详细设计的概述2.1.1 界面元素2.1.2 界面数据来源2.1.3 界面交互2.1.4 按钮操作2.2 完善API设计2.3 完善数据库结构设计2.3.1 业务字段2.3.2 描述字段2.3.3 控制字段2.3.4 暂存字段2.4 类设计2.5 算法设计2.5.1 通用算法2.5.2 业务算法2.5.…

阿里云云安全中心基础免费版不支持审计功能!

阿里云云安全中心免费版有审计功能吗&#xff1f;没有&#xff0c;审计功能是指日志分析模块&#xff0c;日志分析仅支持防病毒版、高级版、企业版和旗舰版用户在购买日志分析容量后使用该功能。阿里云百科&#xff1a;免费版用户需要升级到防病毒版、高级版、企业版或旗舰版并…

业财融合潮流下,构建国有企业全面预算管理体系

近年来&#xff0c;在我国快速发展的变革过程中&#xff0c;国有企业改革的持续深入需要积极结合市场环境和自身发展需求&#xff0c;然而其传统的财务管理模式难以适应企业提出的新要求&#xff0c;预算管理与经营销售之间不断出现隔阂。为确保全面预算管理在国有企业内部的良…

矿物鉴定VR实践教学平台:打造全新的沉浸式学习体验

在科技的帮助下&#xff0c;我们的学习和培训方式正在发生着深刻的变化。其中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术带来的沉浸式学习体验&#xff0c;为我们提供了一种全新的学习和实践方式。本文将详细介绍一款使用VR技术的教学工具——矿物鉴定VR实践教学平台…