class ClassSealer {
private:
friend class Sealed;
ClassSealer() {}
};
class Sealed : public ClassSealer
{
// ...
};
class FailsToDerive : public Sealed
{
// This class is capable of being instantiated
};
Вышеупомянутый не может опечатать класс, но следующие работы, почему?Уплотнение классов в C++ и виртуальном наследовании
class ClassSealer {
private:
friend class Sealed;
ClassSealer() {}
};
class Sealed : public virtual ClassSealer
{
// ...
};
class FailsToDerive : public Sealed
{
// Cannot be instantiated
};
Что здесь происходит? Какую роль здесь играет виртуальное наследование?
Этот метод устарел. вместо этого используйте новое ключевое слово 'final'. –
@RichardHodges благодарит. Но я хочу знать причину специфического поведения, упомянутого выше. – q126y