构造函数和构析函数详解

             构造函数和构析函数的作用     
  • 到底啥是构造函数?
  • 到底啥是构析函数?

构造函数,说白了,就是起到取款机的作用,用户取钱都要通过取款机去执行

一、
构造函数起到传递参数和访问私有数据成员的作用,如以下代码

#ifndef BOX_H_H
#define BOX_H_H
class Box
{
public:
	Box(int = 10, int = 10, int = 10);
	int volume();
private:
	int height;
	int width;
	int length;
};
Box::Box(int h, int w, int l)
{
	height = h;
	width = w;
	length = l;
}
int Box::volume()
{
	return(height * width * length);
}
#endif // !1


#include "Box.h"
#include<iostream>
using namespace std;
int main()
{
	Box Box1(12, 34, 45);//创建两个对像Box1和Box2
	Box Box2;
	cout << Box1.volume()<< endl << endl;
	Box2 = Box1;//将Box1的值赋值给Box2
	cout << Box2.volume()<< endl << endl;//调用函数volume()
	return 0;
}

我们先分析以上的构造函数代码片段,在类的公有成员里面,我们对构造函数进行初始化,其初始的值都为int型,并且都为10,之后,我们在类的外面对构造函数进行定义,定义的格式为:类名::类名(参数){},以上定义的构造函数的参数为h,w,l,在这个构造函数体里面,将这三个参数分别赋值给私有数据成员
height,width,length,之后,之后建立对象的时候,比如我建立了一个Box1(12,34,45)对象,这个对象就的实参就被构造函数进行调用,将12,34,45的值分别赋值给了构造函数的私有数据成员,height,width,length,此时我们就发现,构造函数起到了访问私有数据成员的作用,说白了,想访问私有数据成员,并且给私有数据成员赋值,就必须使用构造函数来访问,就比如说,我想去银行ATM取款机领钱,我不能直接撬开取款机来领钱,必须要通过取款机来领钱,当然你也可以撬开取款机来领钱,但是后果你懂的。

假如我们建立对象的时候,不给对象里面参数是空的,比如Box4,那么,构造函数就默认他们的初始值都为10,如下图的输出结果
默认的构造函数的值都为10的输出结果
在main里面实现
构析函数

#include<iostream>
#include<string>
using namespace std;
class student
{
public:
	student(long n, string na, char s)
	{
		num = n;
		name = na;
		sex = s;
		cout << "大家好!我的名字叫做" << endl;
	}
	~student()
	{
		cout << "大家好!我叫构析函数!" << endl;
	}
	void display()
	{
		cout << num << endl;
		cout << name << endl;
		cout << sex << endl;
	}
private:
	long num;
	string name;
	char sex;
};


int main()
{
	student student1(85190217,"江小白",'m');
	student1.display();
	return 0;
}

在这里插入图片描述
这个图片是执行了以上代码的结果,在程序的最后,执行了构析函数,释放了对象所占用的内存空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值