Bonjour

J'ai un peu cherché mais je ne trouve pas mon bonheur.

J'apprends le C++ natif à l'école en ce moment, et dans le projet que je dois créer, j'ai une méthode qui selon qu'elle aie réussi ou non, me renvoie un objet instancié ou null.

Le problème, c'est qu'en c++ je ne sais pas comment avoir l'objet null.
Je programme en Java depuis un moment donc ma notion d'objet null c'est par exemple

En Java, après cette instruction "obj" est null, il faut un appel explicite au constructeur avec un "new" pour instancier l'objet.

En c++, après cette instruction "obj" n'est pas null, le constructeur par défaut de la classe a été appelé, l'objet est déjà instancié.

Et donc moi qui ai l'habitude de pouvoir faire ce test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if(obj == null)
{ 
    ... 
}
En c++ je ne vois que l'alternative de tester la valeur d'un des attribut de mon objet pour savoir s'il a été initialisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if(obj.getAttribut() == valeur)
{
    ...
}
mais je n'aime pas trop ce procédé.

Si j'utilise un pointeur (pour tester la valeur NULL), je suis embêté par le fait que les objets déclarés (et instanciés) dans une méthode sont détruit une fois la méthode exécutée. Retourner un pointeur vers cet objet cause une erreur à l'exécution (violation d'accès mémoire).

Donc me voilà un peu coincé.
Je n'ai pas encore la philosophie C++ donc ma façon de raisonné n'est peut-être pas la bonne.

Je m'en remets à vous pour m'éclairer sur la question

merci d'avance