析构函数Rabbit案例

#define _CRT_SECURE_NO_WARNINGS				//忽视警告
#include <iostream>
using namespace std;
class Rabbit								//定义兔子类Rabbit
{
public:
	Rabbit(string name,const char *pf);		//声明构造函数
	void eat();
	~Rabbit();								//声明析构函数
private:
	string _name;							//声明表示兔子名字的成员变量
	char *_food;							//声明表示兔子食物的成员变量
};
Rabbit::Rabbit(string name, const char* pf)
{
	cout<<"调用构造函数"<<endl;
	_name=name;
	_food=new char[50];						//为_food指针申请50字节的内存空间
	memset(_food,0,50);						//初始化_food空间
	strcpy(_food,pf);						//将参数pf指向的数据复制到_food中
}
void Rabbit::eat()
{
	cout<<_name<<" is eating "<<_food<<endl;
}
Rabbit::~Rabbit()							//类外实现析构函数
{
	cout<<"调用析构函数,析构"<<_name<<endl;
	if(_food != NULL)
		delete []_food;						//释放_food的内存
}
int main()
{
	Rabbit A("A","luobo");
	A.eat();
	Rabbit B("B","baicai");
	B.eat();
	return 0;
}

代码运行如下图
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值