zoukankan      html  css  js  c++  java
  • C++中的析构函数

    什么是析构函数? 
    析构函数是一个破坏或删除对象的成员函数。

    ~constructor-name();

    析构函数的属性:

    • 销毁对象时,将自动调用析构函数。
    • 不能将其声明为static或const。
    • 析构函数没有参数。
    • 它没有返回类型,甚至没有空。
    • 具有析构函数的类的对象不能成为联合的成员。
    • 析构函数应在该类的公共部分中声明。
    • 程序员无法访问析构函数的地址。

    什么时候调用析构函数? 
    当对象超出范围时,将自动调用析构函数: 
    (1)函数结束 
    (2)程序结束 
    (3)包含局部变量的块结束 
    (4)调用删除运算符  

    一个类中可以有多个析构函数吗? 
    不可以,一个类中只有一个析构函数,其类名前面带有〜,没有参数,没有返回类型。

    什么时候需要编写用户定义的析构函数? 
    如果我们不在类中编写自己的析构函数,则编译器会为我们创建一个默认的析构函数。除非我们在类中动态分配了内存或指针,否则默认析构函数可以正常工作。当一个类包含指向在该类中分配的内存的指针时,我们应该编写一个析构函数以释放该类实例之前的内存。必须这样做以避免内存泄漏。

    析构函数可以是虚拟的吗? 
    是的,实际上,当我们具有虚函数时,在基类中使析构函数虚拟是一个好主意。

    更多详细资料:见C ++中的析构函数

  • 相关阅读:
    程序员的健康问题
    比特币解密
    浅谈比特币
    一款能帮助程序员发现问题的软件
    微软为什么总招人黑?
    写了一个bug,最后却变成了feature,要不要修呢?
    不管你信不信,反正我信了
    Excel工作表密码保护的破解
    pip笔记(译)
    super
  • 原文地址:https://www.cnblogs.com/strive-sun/p/14467800.html
Copyright © 2011-2022 走看看