Quote Originariamente inviata da starcraftworld Visualizza il messaggio
Allora non mi è chiara una cosa...
I campi della classe base come ad esempio il colore di un pezzo, che sono anche ereditati dalla classe derivata, vengono inizializzati due volte quando creo un nuovo oggetto della classe derivata (rispettivamente dal costruttore della classe derivata e da quello della classe base)?
Uhm, hai letto l'articolo che ti ho linkato?

Quando derivi da una classe, viene sempre richiamato il costruttore della classe base; se non lo richiami esplicitamente viene chiamato il costruttore di default, altrimenti puoi/devi richiamare un costruttore parametrico, a cui deleghi l'inizializzazione di tutti i campi della classe base.

Nel tuo caso, avrai probabilmente una cosa del tipo:
codice:
class Pezzo
{
private:
    Color _color;
public:
    Pezzo(Color color) : _color(color) {}

    Color getColor() { return _color; }
};

class Dama : public Pezzo
{
public:
    Dama(Color color) : Pezzo(color) {}
};
Come vedi, il costruttore di Dama delega l'inizializzazione del colore a quello di Pezzo.