Básicamente, él simplemente reunió un montón de palabras y las unió sin darse cuenta de que realmente se refieren a cosas diferentes, o a menudo, lo mismo.
protected abstract virtual base
Pretty simple.
class Base { // BASE
virtual something() = 0; // ABSTRACT
};
class Derived : protected virtual Base { // PROTECTED VIRTUAL
};
pura destructor privada virtual
también bastante simple.
class Base { // BASE
private:
virtual ~Base() = 0; // pure virtual, private, destructor
};
class Derived : Base {
};
Por supuesto, pure virtual es lo mismo que abstract.
Es una hipérbole completamente clara y completa escrita por alguien que no tiene ni idea de lo que está hablando.
¿Puedo etiqueta este "departamento de departamento de redundancia"? ¿Por favor? –
Estas palabras parecen tener sentido, pero no realmente. También unir dos elementos diferentes para intentar y complicar más las cosas es una señal de que el autor solo trata de confundir a las personas para tratar de hacer una observación que no está realmente allí. Debemos tener en cuenta que cada situación es única y que usted construye su jerarquía de clases y destructores según lo requiera la situación. Llamar al lenguaje demasiado complicado porque proporciona facilidades es una tontería. Es como decir cuál es el punto de la herencia privada. Sí, normalmente no vas a usarlo, pero habrá una ocasión en que es bueno tenerlo. –
No pienso en el destructor privado virtual puro basado en la base virtual abstracta protegida y cuándo fue la última vez que necesitó uno. Creo que 1) Mi clase es abstracta 2) El destructor tiene que ser virtual. 3) Pero no necesito una implementación así que es pura 3) Utilizaré la herencia protegida. –