C++ 中的析构函数
c++programmingserver side programming
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<<"析构函数内部"; } };
函数 main() 包含类类型 Demo 的对象定义。然后调用函数 display()。如下所示。
Demo obj1(10, 20); obj1.display();