:~的含义是什么

What is the meaning of ::~

本文关键字:是什么      更新时间:2023-10-16

在以下代码中,以下内容的含义是什么::~

GaussianMex::~GaussianMex()
{
   int i;
}

这不是单个运算符::~,而是GaussianMex析构函数的定义。通过ClassName::ClassMethod语法定义类方法,由于析构函数名称为~ClassName,因此析构函数定义为ClassName::~ClassName

这是一个析构函数。

考虑:

class GaussianMex
{
public:
    // This is the CONstructor (ctor).  It is called when an instance of the class is created
    GaussianMex()
    {
    };
    // This is a Copy constructor (cctor).  It is used when copying an object.
    GaussianMex(const GaussianMex& rhs)
    {
    };

    // This is a move constructor.  It used when moving an object!
    GaussianMex(GaussianMex&& rhs)
    {
    };

    // This is the DEStructor.  It is called when an instance is destroyed.
    ~GaussianMex()
    {
    };

    // This is an assignment operator.  It is called when "this" instance is assigned
    // to another instance.
    GaussianMex& operator = (const GaussianMex& rhs)
    {
        return *this;
    };

    // This is used to swap two instances of GaussianMex with one another.
    friend void swap(GaussianMex& lhs, GaussianMex& rhs)
    {
    };
};  // eo class GuassianMex

构造函数的目的是进行所需的任何初始化(可能是分配内存或其他类实例)。析构函数的作用正好相反——它对类在其生存期内分配的任何资源进行清理。

表示该方法是一个析构函数。

类最多可以有一个析构函数,并且它总是以~符号为前缀的类名。

只要对象的实例被销毁,就会调用析构函数。每当实例超出作用域,或者在指向类实例的指针上调用delete时,就会发生这种情况。

您正在定义类GaussianMex的析构函数。