Иногда вы просто не можете сделать деструктор не виртуальным, потому что он может иметь базовый класс, где деструктор является виртуальным.

р:

template<class T>
class Base {
public:
    Base();
    friend class T;
};

Теперь это не работает ... Есть ли способ сделать это?

Я на самом деле пытаюсь сделать универсальный герметик следующим образом:

class ClassSealer {
private:
   friend class Sealed;
   ClassSealer() {}
};
class Sealed : private virtual ClassSealer
{ 
   // ...
};
class FailsToDerive : public Sealed
{
   // Cannot be instantiated
};

Я нашел этот пример где-то на этом сайте, но не могу найти его ... (Вот)

Я знаю, что естьдругие способы делать это, но сейчас мне любопытно, если вы действительно можете сделать что-то подобное.

Ответы на вопрос(3)

Ваш ответ на вопрос