首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一行代码带你搞清构造函数和析构函数!

一行代码带你搞清构造函数和析构函数!

作者头像
Ynchen
发布2025-12-17 20:10:05
发布2025-12-17 20:10:05
1610
举报

代码展示:简单进行对一个成员数组进行初始化 

代码语言:javascript
复制
#include<iostream>
using namespace std;
//构造函数:创建对象的时候,同时初始化资源
//        1.函数名和类名一样
//        2.没有返回值类型声明
//        3.构造函数是可以带参数的,所以可以重载
//        4.构造函数编译器会在创建对象时,自动调用
//析构函数:在对象死亡(生命周期结束)时,会自动调用
//        1.函数名和类名一样
//        2.没有返回值类型声明
//        3.析构函数不可以带参数,所以不可以重载
//注意:  1.先定义的先构造后析构
//        2.后定义的后构造先析构
//        可以类比堆栈
class Stu {
private:
	int m_age;
	char* m_name;
public:
	Stu()//无参构造函数
	{
		m_age = 18;
		m_name = new char[8];//动态内存分配,必须手动释放
		strcpy(m_name, "Ynchen");
	}
	~Stu()//析构函数
	{
		if (m_name)
		{
			delete[]m_name;//用于释放被调用的堆空间
		}
	}
	int getage(){
		return m_age;
}
	const char* getname() {
		return m_name;
	}
};
int main()
{
	Stu Ynchen;
		Stu vip[25];
		for (int i = 0; i < 25; i++)
		{
			cout << vip[i].getage() << "  " << vip[i].getname() << endl;
	}
		return 0;
}

作用:

构造函数:确保对象在使用前被正确初始化,避免出现未定义状态。 析构函数:确保对象在不再使用时释放资源,防止资源泄露。

重要性:

在现代编程语言中,如C#和Java,垃圾回收机制会自动管理内存,但析构函数(或类似的终结器/析构器)仍然用于释放非内存资源。在C++中,由于没有自动垃圾回收,构造函数和析构函数对于资源管理尤为重要。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码展示:简单进行对一个成员数组进行初始化 
  • 作用:
  • 重要性:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档