Ma question est simple: si j'ai un peu de classe Homme et je veux définir une fonction membre qui renvoie nom de l'homme, lequel de ces deux variantes est que je préfère?
D'abord:
string name();
Deuxième:
void name(/* OUT */ string &name);
La première variante est une sorte de inefficace, car elle rend inutiles les copies (variable locale -> retour -> variable dans la partie gauche de l'affectation).
La deuxième variante à l'air assez efficace, mais il me fait pleurer à écrire
string name;
john.name(name);
au lieu d'une simple
string name(john.name());
Alors, quelle variante est que je préfère et ce qui est le bon compromis entre l'efficacité et la commodité et la lisibilité?
Merci à l'avance.