//析构函数(Destructor):(析构器),在对象销毁的时候自动调用,一般用于完成对象的清理工作.
特点:函数名以~开头,与类同名,无返回值(void都不能写),无参,不可以重载,有且只有一个析构函数.
注意:通过malloc分配的对象free的时候不会调用构造函数
struct Person {
// 构造函数:对象创建的时候调用
Person(){
cout << "Person()" << endl;
this->m_age = 0;
}
// 析构函数:对象销毁的时候调用(内存被回收了)
~Person(){
cout << "~Person()" << endl;
}
}
// 注意用class创建对象的时候,一定要在构造函数和析构函数上面添加上public,不然默认是private,不可调用
class Student {
int m_age;
public:
// 构造函数:对象创建的时候调用
Student(){
cout << "Student()" << endl;
this->m_age = 0;
}
// 析构函数:对象销毁的时候调用(内存被回收了)
~Student(){
cout << "~Student()" << endl;
}
}
void test(){
Person person;
}
int main(){
test();
getchar();
// 大括号也有作用域的作用,在栈空间中不需要我们手动管理内存
{
Person person;
}
// 堆空间用new,也调用了构造函数和析构函数
Person *p = new Person();
delete p;
// 堆空间用malloc,不会调用构造函数和析构函数,因为malloc只负责分配内存和回收内存
Person *p1 = (Person *)malloc(sizeof(Person));
free(p);
return 0
}
C++ 析构函数
最新推荐文章于 2024-02-06 15:01:12 发布