C++构造函数和析构函数

2018/4/8

C++

1.C++对象内存分配机制

当程序运行到对象定义的时候,系统为对象开辟存储空间,存放各自的变量值,所需内存空间为该对象中成员中内存字节的总和

所有的对象共享同一个启动函数代码

2.构造函数

1.简单介绍:

1.构造函数就是对类初始化的一种方式,采用构造器可以初始化默认值

2.构造函数的类名为函数名

3.构造函数无返回类型

4.访问级别为public

public:
	text1(int a, int b)
	{
		cout << "启动构造器" << endl;
		num1 = a;
		num2 = b;

		cout << "构造函数实现完毕" << endl;
	}

注:构造函数分有参数型和无参数型,如未定义构造函数,系统自定义一个无参构造

3.析构函数

1.简单介绍:析构函数是对构造函数的处理机制,清空内存;

2.多用于构造对象为指针对象型,采用delete释放内存

~text1()//开启析构器,其实析构器在指针中采用delete操作
	{
		cout << "启动析构器" << endl;
		cout << "表面删除" << endl;
		cout << "关闭析构器" << endl;
              	}

4.函数的二义性

1.在声明一个类时,系统会给一个默认构造函数,在对类成员进行初始化时,对类的带参构造进行重载,如果未给带参构造进行参数赋值,会产生二义性错误

解决方法之一:屏蔽默认构造

/*text1()//函数自动调用,为了解决二义性而屏蔽
	{
		cout << "启动无参构造器" << endl;
	}*/
	

5.注

在使用private优先级的时候,不能直接对函数内部成员变量进行使用,要采用调用内部函数的方式

//对于构造器和析构器的使用
#include<iostream>
using namespace std;
class text1
{
public:
	text1(int a, int b)
	{
		cout << "启动构造器" << endl;
		num1 = a;
		num2 = b;

		cout << "构造函数实现完毕" << endl;
	}
	~text1()//开启析构器,其实析构器在指针中采用delete操作
	{
		cout << "启动析构器" << endl;
		cout << "表面删除" << endl;
		cout << "关闭析构器" << endl;
	}
	int  get_num1()
	{
		return num1;
	}
	int get_num2()
	{
		return num2;
	}
	//注:使用访问级为private时,需要采用类内部的函数来调用成员变量
private:
	int num1, num2;

	/*text1()//函数自动调用
	{
		cout << "启动无参构造器" << endl;
	}*/
	
};
	void main()
	{
		
		text1 t1(10, 20);
		cout << t1.get_num1() << endl;;
		cout << t1.get_num2() << endl;;
		t1.~text1();
		system("pause");
	}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值