favor, eche un vistazo en el siguiente ejemplo:¿Cómo declarar el constructor de copia en la clase derivada, sin construcor predeterminado en la base?
class Base
{
protected:
int m_nValue;
public:
Base(int nValue)
: m_nValue(nValue)
{
}
const char* GetName() { return "Base"; }
int GetValue() { return m_nValue; }
};
class Derived: public Base
{
public:
Derived(int nValue)
: Base(nValue)
{
}
Derived(const Base &d){
std::cout << "copy constructor\n";
}
const char* GetName() { return "Derived"; }
int GetValueDoubled() { return m_nValue * 2; }
};
Este código me mantiene lanzando un error que no hay contructor por defecto para la clase base. Cuando declaro que todo está bien. Pero cuando no lo hago, el código no funciona.
¿Cómo puedo declarar un constructor de copia en la clase derivada sin declarar el contructor predeterminado en la clase base?
Thnaks.
El compilador no proporciona el constructor predeterminado para la clase una vez que tenemos cualquier constructor parametrizado .. – aProgrammer