析构函数与this指针

二、析构函数

1、知识点介绍

析构函数和构造函数一样,也是一种特殊的函数,主要的作用是在对象结束生命周期时,系统自动调用析构函数,来做一些清理工作,比如在对象中有申请内存,那么是需要自己去释放内存的,这个释放内存的操作就可以写在析构函数中,在对象死亡的时候自动调用析构函数释放内存,那么这种就不需要担心忘记释放内存了。

2、析构函数的定义

1、函数名与类名相同,在前面加上一个~

​ ~Student(){}

2、没有返回值类型和返回值,也没有参数

3、如果类中没有自己写析构函数,那么系统将会给出一个隐式什么都不干的析构函数

3、析构函数的调用时机

1、析构函数可以主动通过对象调用,析构函数必须是公有属性下的。

2、在对象死亡时,析构函数会主动调用它的析构函数。

4、析构函数的特点

1、析构函数做的事是对对象做一些清理工作,主动调用析构函数,并不会释放对象。

2、一个类只有一个析构函数。

三、this指针

1、知识点介绍

1、this指针是系统自动生成的,且隐藏,我们看不到定义,但是可以使用

2、this指针并不是对象本身的一部分,它的作用域在类的内部。当类的普通函数在访问类的普通成员的时候,该this指针总是指向调用者对象。

2、this指针的使用

1、必须在类中使用,在类外是使用不了的

2、this->成员名;或者(*this).成员名; 表示调用者的某个成员

3、return this; 表示返回当前调用者对象的地址

4、return *this; 表示返回当前调用者对象

3、this指针在代码中的表现

//1 在类中函数的形参和类中成员同名
void MyClass::fun(int sum)
{
    this->sum = sum;
}
//这样我们就能通过this指针指向sum,来表示this指向的这个sum是当前对象的sum。如果是sum=sum;那么这两个sum都是表示的形参。
posted @ 2021-11-10 13:49  宣哲  阅读(458)  评论(0编辑  收藏  举报