C++提高 --- 构造函数与析构函数

Posted Overboom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++提高 --- 构造函数与析构函数相关的知识,希望对你有一定的参考价值。

我们用构造函数去初始化一个对象的时候,会分配一段空间A,构造函数的作用是对这段空间进行初始化的操作,并不是创建了这段空间。

在调用析构函数的时候,并不是去释放空间A。在空间A中可能会包含多个变量指向别的空间B、空间C,析构函数的作用是去释放空间B、C。

看一个示例:

class Stu{

public:
	Stu()
	{
		name = new char[100];
	}
	~Stu()
	{
		delete name;
	}
	
public:
		char * name;
		int age;
}

int main(void)
{
	Stu *stu_ = new Stu;
	
	delete stu_;
	
	return 0;
}

 1. Stu stu_ = new Stu;   创建stu_对象,自动调用构造函数。

stu_是指针,4个字节

*stu_是Stu类型变量,分配8个字节

在构造函数中调用name = new char[100]; 分配100个字节

2. 析构函数只是销毁在构造函数中分配的空间。

以上是关于C++提高 --- 构造函数与析构函数的主要内容,如果未能解决你的问题,请参考以下文章

C++:对象和类|| 类的构造函数与析构函数

C++ - 构造函数与析构函数的使用

C++ 类的继承三(继承中的构造与析构)

(笔记):构造函数与析构函数

C++修炼之筑基期第二层——构造函数与析构函数

构造函数与析构函数的起源