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++提高 --- 构造函数与析构函数的主要内容,如果未能解决你的问题,请参考以下文章