#include <iostream>
using namespace std;
class Base
{
public:
Base(){cout <<"Base"<<endl;}
virtual ~Base(){cout<<"~Base"<<endl;}
virtual void foo(){ cout<<"foo base"<<endl;}
};
class Derived: private Base
{
public:
Derived(){cout<<"Derived"<<endl;}
virtual ~Derived(){cout<<"~Derived"<<endl;}
virtual void foo(){ cout<<"foo dervied"<<endl;}
};
int main(int argc, char *argv[])
{
Base *pb = new Derived;
Derived d;
d.foo();
return 0;
}
cuando ejecutar el programa de ejemplo anterior consigo error siguiente: protected.cpp: En función 'int main (int, char **)': protected.cpp: 26: error: " Base' es una base inaccesibles de 'derivado'clase derivada Protegida
¿Por qué no es posible crear objeto derivado con el puntero de base ????
Así que puedo crear una clase derivada de instanse como
Derived d
Derived d1= new Derived;
Pero la creación de instancia desde un puntero de clase base como
Base * b = new derived
fallará.
Esto se debe derivada no es convenientemente indicado una clase derivada de Base cuando derivados procted y privada ??
¿Es esto correcto ?????
¿por qué esta pregunta recibió 3 votos a favor? esa es una pregunta perfectamente legítima. +1, ridículo. – mstrobl