Originariamente inviato da ramy89
Spiegati meglio, la classe figlio da che classe deriva?
Hai ragione,
ho sbagliato proprio la domanda.

Io vorrei fare una relazione di composizione (@passasooz: io ho trovato questo termine studiando in libri di c++, e' un tipo di relazione has-a) tra due classi che sono astratte.
Esempio relazione di composizione tra due classi astratte A e B:

codice:
class A {

public:
virtual double foo()=0;
}

class B {
private:
A mA
public:
virtual double foo()=0;
}
questo codice non funziona perche' non posso instanziare l oggetto mA di A perche' A e' una classe astratta.
Allora dovrei mettere:
codice:
A *mA
ma cosi diventa una relazione di aggregazione perche' non ne controllo il lifetime di mA.
Se pero' mettessi nel distruttore:
codice:
B::~B(void){
delete *mA;
}
cosi ne controllerei il lifetime. Vi pare corretto? Inoltre sempre nell'ottica di relazione di composizione, mA va instanziato nel corpo del costruttore o nella initialitation list?
cosa cambia?
grazie