Brunni (./3) :
Au risque d'en oublier si j'étend la classe (
). Là actu ce que je fais c'est une horreur du style:
Texture::Texture(const Texture& t)
{
memcpy(this, &t, sizeof(*this));
this->isCopy = true;
}
Attention, c'est très risqué ça. J'imagine que dans ton destructeur tu fais qqchose du genre "if (!isCopy) free (...)" ? Si oui, assure toi que les copies seront toujours détruites avant les originaux (à ta place j'éviterais absolument de faire ça, c'est vraiment un coup à se faire piéger quand tu n'auras plus cette contrainte en tête).
Sinon comme tu es en train de déclarer des constructeurs, tu peux utiliser cette syntaxe un peu moins lourde, même si ça reste moche quand tu as vraiment plein d'attributs (mais tu devrais peut-être faire des sous-structures dans ce cas) :
Texture::Texture(const Texture& t) :
width (t.width),
height (t.height),
...
{
}
Pour ta supposition à propos de l'héritage, on en a parlé il n'y a pas longtemps dans un autre topic, et il me semble que même si ça a l'air d'être toujours le cas ça reste risqué de faire cette supposition.