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 ; } ;
它是析构函数,它破坏实例,释放内存等等。
以下是来自 ibm.com 的描述:
析构函数通常用于在对象被销毁时为类对象及其类成员释放内存并进行其他清理。 当该对象超出范围或被显式删除时,将为类对象调用析构函数。
请参阅https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/rzarg/cplr380.htm