J'ai un membre de classe statique qui est un certain conteneur, commePeupler un conteneur de membre statique dans C++
(.h)
class Foo
{
...
private:
static list<string> s_List;
}
je dois remplir la liste avec un certain nombre de valeurs spécifiques. En fait, il devrait également être const, mais cela pourrait compliquer le problème plus loin. Toutes les fonctions membres de la classe sont statiques, donc l'initialiser dans un constructeur n'a pas de sens.
Je suppose que la vôtre est une solution plus polyvalente, car un membre privé peut être initialisé sans problème ... et est-ce que s_List peut être const? Ensuite, init() doit également renvoyer la liste de const. Droite? –
Maleev
Aussi, du point de vue de la performance: ne vaudrait-il pas mieux renvoyer une référence à tmp, car il sera copié de toute façon par le constructeur de copie implicite (ou opérateur d'affectation, corrigez-moi) dans la dernière ligne? Alors nous ne serons pas coppies deux fois. Des sous-titres que je n'ai pas comptés? – Maleev
oui, vous pouvez le changer en une liste const <>. Cependant, vous ne pouvez pas renvoyer de référence car "tmp" est une variable locale et mourra une fois que vous aurez quitté init(). –