El siguiente ejemplo sencillo producirá un error de compilación, ya que accidentalmente utilizar la herencia privada:puntero a la clase base y la herencia privada
main.cpp: 21: error: 'A' es una base inaccesible de 'B '
class A
{
};
class B : /*ups forgot that -> public*/ A
{
};
int main(int , char *[])
{
A* test = new B;
return 0;
}
¿me podría ayudar a explicar por qué es exactamente y es inaccesible en la clase base y por qué se necesita en la conversión B*
-A*
?
[¿Cuáles son especificadores de acceso? ¿Debo heredar con privado, protegido o público?] (Http://stackoverflow.com/questions/5447498/what-are-access-specifiers-should-i-inherit-with-private-protected-or-public/%5d) es una buena lectura para ti. –
también este enlace puede ser útil http://www.gotw.ca/publications/mill06.htm –