prega di dare un'occhiata al seguente esempio:Come dichiarare il costruttore di copie nella classe derivata, senza il costrutto predefinito nella 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; }
};
Questo codice mi tiene gettare un errore che non ci sono contructor di default per classe di base. Quando lo dichiaro tutto è ok. Ma quando non lo faccio, il codice non funziona.
Come posso dichiarare un costruttore di copia nella classe derivata senza dichiarare contructor predefinito nella classe di base?
Thnaks.
Il compilatore non fornisce il costruttore predefinito per la classe una volta che abbiamo un costruttore parametrizzato. – aProgrammer