C++中类定义下的析构函数,拷贝(复制)函数的使用

#include<iostream>
using namespace std;
class CDate
{
private:
	int y, m, d;
public:
	CDate(int y=2001, int m=1, int d=1);
	void print();
	~CDate();
	CDate(const CDate& t);


};
CDate::CDate(int y, int m, int d)
{
	this->y = y;
	this->m = m;
	this->d = d;
}
void CDate::print()
{
	cout << y << "-" << m << "-" << d << endl;
	
}
CDate::~CDate()
{
	cout<<"destructor..."<< y << "-" << m << "-" << d << endl;
}
CDate::CDate(const CDate& t)
{
	y = t.y;
	m = t.m;
	d = t.d;
}
int main()
{
	CDate t, b(t);
	t.print();
	return 0;
}

以上的代码是对日期的一个定义;可以看到里面运用的析构函数与拷贝函数;

我在这里为大家解释一下析构函数,与拷贝函数是什么:

1.析构函数:原型:~类名()

 这里“~”注意不可丢;通俗的来讲,析构函数就是当有一个函数停止调用时候,这时候析构函数就负责清理内存,否则的会函数的大量使用,会占用许多内存;             

大家看上面主函数当中对象 t 与 b ,若只是实现析构函数的话,它的结果如下图:

          

 这里的结果为了让大家看得清楚,我将b赋值,即b(2022,4,2);

大家可以看到,先清除“b”的结果内存,后清楚“ t ”的内存;这里是析构函数的作用效果,我将它称为“倒序清除”,后用的先处理,先用的后处理。

2.拷贝函数:我们也可以称为复制函数。

赋值函数:原型如下:类名(const 类名&对象)

记住:这里取地址符不可丢,这里为后面对该函数的定义极为有用。大家开一下上面的代码,我才用的算术运算符进行赋值,其中用了“.”进行访问。大家看如下的结果:

 拷贝函数,参数传递形式,是从实参传给形参,因而“b”与“t“的赋值几位定义中的实参。

                                                                                            (若哪里有错误,欢迎大家来指正!)

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

silence_sz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值