这个符号在C ++中意味着什么? “〜”

时间:2011-01-22 21:15:26

标签: c++

如果我们在这样的函数之前使用~~func();,这是什么意思?

感谢。

6 个答案:

答案 0 :(得分:15)

如果它是类定义的一部分,那么它是该类的析构函数,前提是函数名与类名相同(否则会出现语法错误)。

class stuff {
  stuff(); // constructor for stuff
  ~stuff(); // destructor for stuff
};

它也可能是一个不明智的运营商。即。

int x = ~func();

在此上下文中,它将取func()的返回值,它可能返回一个整数类型,翻转所有位并将结果存储在x中。

如果func()返回一个在其类中定义operator~的对象,则它可能意味着什么; - )

答案 1 :(得分:4)

假设您正在引用一个函数声明,它表示destructor - 一个在销毁对象时自动运行的函数。析构函数通常用于释放对象使用的任何资源(可用内存,关闭文件等)

答案 2 :(得分:2)

它指定类或结构的析构函数

答案 3 :(得分:2)

这是析构函数。保证在对象被销毁时调用的函数。

答案 4 :(得分:1)

它是按位补码运算符。

(实际上,不,它可能不是析构函数。名为func的类的析构函数??)

它从func()返回整数并按位补充它;也就是说,它翻转了所有的位。

答案 5 :(得分:1)

如果是~Foo,Foo是一个类,它就是一个析构函数。

如果在其他情况下使用它,则它是按位求反运算符。它将所有设置为1到0的位翻转,反之亦然。