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 ;
} ;
137
Как уже отмечали другие, в случае, когда вы спрашиваете об этом, является деструктором
class Stack
.Но отвечая на ваш вопрос именно так, как он указан в заголовке:
есть другая ситуация. В любом контексте, кроме непосредственно перед именем класса (который является контекстом деструктора),
~
является оператором дополнения (или побитовым). Конечно, это происходит не очень часто, но вы можете представить себе такой случайкоторая похожа, но имеет совершенно другое значение.
источник
Это деструктор. Функция гарантированно вызывается, когда объект выходит из области видимости.
источник
Это деструктор. Вызывается, когда объект уничтожен (вне сферы действия или удален).
Чтобы было понятно, вы должны использовать ~ NameOfTheClass как для конструктора, другие имена недопустимы.
источник
Это деструктор. Этот метод вызывается, когда экземпляр вашего класса уничтожается:
источник
Это был бы деструктор (освобождая любую динамическую память)
источник