¿Cómo crear una instancia de un objeto de clase derivado, cuya clase base ctor es privada?Crear una instancia de un objeto de clase derivado, cuya clase base ctor es privada
Dado que el ctor de clase derivado invoca implícitamente el ctor de clase base (que es privado), el compilador da error.
consideran este código de ejemplo a continuación:
#include <iostream>
using namespace std;
class base
{
private:
base()
{
cout << "base: ctor()\n";
}
};
class derived: public base
{
public:
derived()
{
cout << "derived: ctor()\n";
}
};
int main()
{
derived d;
}
Este código da el error de compilación:
accessing_private_ctor_in_base_class.cpp: In constructor
derived::derived()': accessing_private_ctor_in_base_class.cpp:9: error:
base::base()' is private accessing_private_ctor_in_base_class.cpp:18: error: within this context
¿Cómo puedo modificar el código para eliminar el error de compilación?
@ Nawaz: hacer que la clase derivada sea un amigo de la clase base trabajado! –