C ++中的析构函数是删除对象的类中的成员函数。当类对象超出范围时(例如,函数结束,程序结束,调用delete变量等)时,将调用它们。
析构函数与普通成员函数不同,因为它们不接受任何参数且不返回任何东西。同样,析构函数的名称与它们的类相同,并且其名称前面带有波浪号(〜)。
给出了一个用C ++演示析构函数的程序,如下所示。
#include<iostream> using namespace std; class Demo { private: int num1, num2; public: Demo(int n1, int n2) { cout<<"Inside Constructor"<<endl; num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } ~Demo() { cout<<"Inside Destructor"; } }; int main() { Demo obj1(10, 20); obj1.display(); return 0; }
输出结果
Inside Constructor num1 = 10 num2 = 20 Inside Destructor
在上面的程序中,类Demo包含一个参数化构造函数,该构造函数使用n1和n2提供的值初始化num1和num2。它还包含一个display()
打印num1和num2值的函数。当类对象的作用域结束时,Demo中也有一个析构函数。给出的代码片段如下。
class Demo { private: int num1, num2; public: Demo(int n1, int n2) { cout<<"Inside Constructor"<<endl; num1 = n1; num2 = n2; } void display() { cout<<"num1 = "<< num1 <<endl; cout<<"num2 = "<< num2 <<endl; } ~Demo() { cout<<"Inside Destructor"; } };
该函数main()
包含类类型为Demo的对象的对象定义。然后display()
调用该函数。如下所示。
Demo obj1(10, 20); obj1.display();