Le code suivant est-il sûr? (Je sais déjà qu'il compile correctement.)L'utilisation de * this dans la méthode de classe C++ pour écraser complètement l'instanciation automatique
void Tile::clear()
{
*this = Tile();
}
int main()
{
Tile mytile;
mytile.clear();
}
En quoi est-ce spécifique à la question? Si un constructeur n'initialise pas correctement un membre, faire _anything_ avec l'objet peut invoquer un comportement indéfini. – sbi
@sbi: Pas n'importe quoi. Vous pouvez avoir une variable de membre de pointeur non initialisée inutilisée. Dans ce cas, vous pouvez instancier et détruire l'objet en toute sécurité. Mon point est que * ça dépend *. – sharptooth
Désolé, mais ça ne vole pas. Une telle bête pourrait également être assignée à et de. – sbi