这个符号在C++中的含义是什么? “〜”

问题描述:

如果我们在使用这样的函数之前使用~:这是什么意思?这个符号在C++中的含义是什么? “〜”

谢谢。

+3

在表达式(恰好调用函数)之前或在声明函数(方法)之前? – delnan 2011-01-22 21:17:45

+0

它*可以*也可以是返回值的补码... – Mehrdad 2011-01-22 21:18:10

+0

@Mehrdad:我想如果它是一个函数调用而不是函数声明的话。 – 2011-01-22 21:20:28

如果它是类定义的一部分,它是该类的析构函数,前提是函数名与类名(否则它将是一个语法错误)。

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

它也可能是位运算符而不是运算符。即

int x = ~func(); 

在这种情况下,这将需要从func()的返回值,这大概是返回一个整体式,翻转所有的位和将结果存储在x

如果func()返回其在其类中定义operator~一个对象,那么它可能意味着任何事情;-)

假设你指的是一个函数声明,它表示一个destructor--一个当对象被销毁时自动运行的函数。析构函数通常用于释放对象使用的任何资源(空闲内存,关闭文件等)

它指定一个类或结构

它的析构函数的析构函数。一个函数保证在对象被销毁时被调用。

这是按位互补运算符。

(其实没有,这可能不是一个析构函数命名func ??类的析构函数)。

它从func()返回的整数和按位具有互补性;也就是说,它翻转所有的位。

如果是〜Foo,其中Foo是一个类,它是一个析构函数。

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