template <class T>
class Stack
{
public:
Stack(int = 10) ;
~Stack() { delete [] stackPtr ; } //<--- What does the "~" signify?
int push(const T&);
int pop(T&) ;
int isEmpty()const { return top == -1 ; }
int isFull() const { return top == size - 1 ; }
private:
int size ;
int top ;
T* stackPtr ;
} ;
Run Code Online (Sandbox Code Playgroud)
ina*_*lus 139
它是析构函数,它会破坏实例,释放内存等等.
以下是来自ibm.com的描述:
析构函数通常用于释放内存,并在销毁对象时对类对象及其类成员执行其他清理.当该对象超出范围或被显式删除时,将为类对象调用析构函数.
请参阅https://www.ibm.com/support/knowledgecenter/SSB27U_5.4.0/com.ibm.zos.r9.cbclx01/cplr380.htm
dmc*_*kee 68
正如其他人所指出的那样,在实例中你要问的是它是析构函数class Stack
.
但完全按照标题中的显示提出问题:
在c ++中,函数名前面的"〜"表示什么?
还有另一种情况.在除了类的名称(这是析构函数上下文)之前的任何上下文中,~
是一个补码(或按位)运算符.为了确保它不会经常出现,但你可以想象一个案例
if (~getMask()) { ...
Run Code Online (Sandbox Code Playgroud)
看起来很相似,但意义却截然不同.
归档时间: |
|
查看次数: |
85036 次 |
最近记录: |