Je suis assez novice en C++ donc j'ai tendance à concevoir avec beaucoup de Java-ismes alors que je suis en train d'apprendre. De toute façon, en Java, si j'avais une classe de "recherche" méthode qui retourne un objet T
d'un Collection< T >
correspondant à un paramètre spécifique, je voudrais renvoyer cet objet et si l'objet n'a pas été trouvé dans la collection, je retourne une valeur NULL. Puis, dans ma fonction d'appel, je voudrais juste vérifier if(T != NULL) { ... }
En C++, je suis la recherche que je ne peux pas retourner une valeur NULL si l'objet n'existe pas. Je veux juste de retour d'un "indicateur" de type T qui avise l'appelant de la fonction qu'aucun objet n'a été trouvé. Je ne veux pas lancer une exception, car il n'est pas vraiment une circonstance exceptionnelle.
class Node {
....
Attr& getAttribute(const string& attribute_name) const {
//search collection
//if found at i
return attributes[i];
//if not found
return NULL;
}
private:
vector<Attr> attributes;
}