Je me demandais pourquoi les deux codes suivants ne donnent pas le même résultat :
Dans les exemples ci-dessous, 'class1' surcharge l'opérateur de cast (class2 &) et renvoie une référence vers un objet de type class2.
class1 object1 = class1::class1();
class2 &object2 = (class2 &) object1;
// Ceci marche comme prévu, un accès par object2 donne le résultat attendu à savoir accès de l'objet sousjacent renvoyé par object1.
class2 &object2 = (class2 &) class1::class1();
// Ceci (je l'ai appris en lisant le code ASM produit) fait "pointer" object2 sur le stack, dans un espace mémoire non-alloué...
Quelqu'un saurait pourquoi ou alors est-ce que ça n'arriev qu'à moi ?