C++学习笔记_7_ 类的成员函数-析构函数

析构函数

前面通过:构造函数的学习,我们知道一个对象时怎么来的,那一个对象又是怎么没呢的?

1.概念

析构函数:与构造函数功能相反,析构函数不是完成对象的销毁,局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数,完成类的一些资源清理工作。

2.特性

析构函数是特殊的成员函数
其特征如下:

  1. 析构函数名是在类名前加上字符 ~。
  2. 无参数无返回值。
  3. 一个类有且只有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。
  4. 对象生命周期结束时,C++编译系统系统自动调用析构函数:
typedef int DataType;
class SeqList
{
    
     
public :
 SeqList (int capacity = 10)
 {
    
    
 _pData = (DataType*)malloc(capacity * sizeof(DataType));
 assert(_pData);
 
 _size = 0;
 _capacity = capacity;
  }
 
 ~SeqList()
 {
    
    
 if (_pData)
 {
    
    
 free(_pData ); // 释放堆上的空间
 _pData = NULL; // 将指针置为空
 _capacity = 0;
 _size = 0;
 }
 }
 
private :
 int* _pData ;
 size_t _size;
 size_t _capacity;
};

猜你喜欢

转载自blog.csdn.net/kris_paul/article/details/115336897