Рассмотрим следующий класс:
struct S { ~S() = delete; };
Вскоре и с целью вопроса: я не могу создавать экземпляры S
как S s{};
, потому что я не мог их уничтожить.
Как упоминалось в комментариях, я все еще могу создать экземпляр, выполнив S *s = new S;
, но я не могу его удалить.
Поэтому единственное, что я могу увидеть для удалённого деструктора, выглядит примерно так:
struct S {
~S() = delete;
static void f() { }
};
int main() {
S::f();
}
То есть, определите класс, который предоставляет только кучу статических функций и запрещает любую попытку создать экземпляр этого класса.
Каковы другие применения (если они есть) удаленного деструктора?