ich ein statisches Klassenmitglied haben, die einige Behälter ist, wieBestücken ein statisches Element Container in C++
(foo.h)
class Foo
{
...
private:
static list<string> s_List;
}
Ich brauche die Liste mit einer Reihe von aufzufüllen spezifische Werte. Eigentlich sollte es auch const sein, aber das könnte das Problem weiter verschlimmern. Alle Klassenmemberfunktionen sind statisch, daher ist es nicht sinnvoll, sie in einem Konstruktor zu initialisieren.
Ich denke, Ihre ist eine vielseitige Lösung, weil ein privates Mitglied ohne viel Aufwand initialisiert werden kann ... und ist es möglich, dass s_List const ist? Dann sollte init() auch die Konstantenliste zurückgeben. Recht? –
Maleev
Auch aus der Sicht der Leistung: wäre es nicht besser, einen Verweis auf tmp zurückzugeben, weil es sowieso durch den impliziten Kopierkonstruktor (oder Zuweisungsoperator, korrigiert mich) in der letzten Zeile kopiert wird? Dann wird es nicht zweimal geschehen. Irgendwelche Unterlieferungen, die ich nicht gezählt habe? – Maleev
ja, Sie könnten es in eine Konst-Liste <> ändern. Sie können jedoch keine Referenz zurückgeben, da "tmp" eine lokale Variable ist und nach dem Verlassen von init() abstirbt. –