1. ホーム
  2. c++

[解決済み] c++で、関数名の前のチルダ"~"は何を意味するのですか?

2022-02-01 05:48:31

質問

 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