Как уже отмечали другие, в случае, когда вы спрашиваете об этом, является деструктором class Stack
.
Но отвечая на ваш вопрос именно так, как он указан в заголовке:
В c ++ что означает тильда «~» перед именем функции?
есть другая ситуация. В любом контексте, кроме непосредственно перед именем класса (который является контекстом деструктора), ~
является оператором дополнения (или побитовым). Конечно, это происходит не очень часто, но вы можете представить себе такой случай
if (~getMask()) { ...
которая похожа, но имеет совершенно другое значение.