C++学习第十五天:类与对象——对象的初始化与清理(构造函数和析构函数语法:编译器自动调用,调用一次)

一开始有基础设置,后面不用了要清理,如果没有这两个步骤,后续会出现许多的安全问题,若不写,那么编译器也会提供他们的空实现。

编译器自动调用

一、构造函数(创建对象时,对对象的成员属性进行赋值操作)

1、语法:类名(){}

无返回类型

函数名与类型相同

可含参数,会发生函数重载

程序在创建对象时自动调用,只调用一次

#include<iostream>
using namespace std;
//类与对象:构造函数(创建对象时自动调用,并对类中成员属性初始化,进行赋值操作)
class person
{
public:
	person()
	{
		cout << "创建对象时编译器自动调用构造函数,构造函数的作用是进行初始化!" << endl;
	}
};
void test01()
{
	person p1;
}

int main()
{
	test01();
	system("pause");
	return 0;
}

二、析构函数(对象销毁,系统自动调用,只调用一次)

1、语法:~类名(){}

除了不可含参数,不能发生函数重载,其它的与上面一样

#include<iostream>
using namespace std;
//类与对象:构造函数(创建对象时自动调用,并对类中成员属性初始化,进行赋值操作)
///类与对象:析构函数(系统自动调用,进行清理操作,只会调用一次)
class person
{
public:
	//1、构造函数
	person()
	{
		cout << "创建对象时编译器自动调用构造函数,构造函数的作用是进行初始化!" << endl;
	}
	//2、析构函数
	~person()
	{
		cout << "销毁对象前系统自动调用析构函数,析构函数的作用是进行清理操作!" << endl;
	}
};
//void test01()
//{
	//person p1;//在栈上的数据,test01执行完毕后就会释放这个对象
//}

int main()
{
	//test01();
	//在main 函数中创建对象,会发现只调用构造,不调用析构(这里联系到,内存管理,虽然在栈区,由于在main函数中,本质会释放内存,但是生命周期和系统一致)
	person p1;
	system("pause");
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值