Ich habe eine static map
das ist ein private
Datenelement. Wie initialisiere ich es in der Implementierungsdatei, so dass die ersten Container leer sind? Es ist nicht const
. Es ist wichtig, dass sich zu Beginn nichts in diesem Container befindet.Initialisiere eine statische private Karte als leer
Antwort
Rubrik:
class XXX {
private:
static std::map<X,Y> the_map; // declares static member
// ...
Implementierungsdatei:
std::map<X,Y> XXX::the_map; // defines static member
dass ein Konstruktoraufruf für Ihre Karte einfügen wird in Ihren Programminitialisierungscode (und einen Destruktor in die Bereinigung). Seien Sie jedoch vorsichtig - die Reihenfolge der statischen Konstruktoren zwischen verschiedenen Übersetzungseinheiten ist nicht definiert.
Wie wäre es damit (wenn ich Sie richtig verstanden habe):
std::map<T,T2> YourClass::YourMember = std::map<T,T2>();
Oder einfach 'std :: map
@MikeSeymour: Genau. Erklären Sie nur, dass Sie Konstruktorargumente geben können, wenn Sie möchten. – Linuxios
Wenn Sie es in der Klassendefinition definieren, dann haben Sie es in der Umsetzung zu erklären:
--- test.h ---
// includes and stuff...
class SomeClass
{
private:
static std::map<int,std::string> myMap;
};
--- test.cpp ---
std::map<int,std::string> SomeClass::myMap; // <-- initialize with the map's default c'tor
Sie eine Initialisierung verwenden können, zu :
std::map<int,std::string> SomeClass::myMap = std::map<int,std::string>(myComparator);
Nitpick: Das wäre/deklariert/in der Klasse und/definiert/in der Implementierung. – Grault
- 1. C++ Initialisiere statische const Strukturvariable
- 2. F # Private statische Methoden
- 3. VB6 private statische in C#?
- 4. Private statische Variablen in PHP-Klasse
- 5. C++ private Vererbung und statische Mitglieder/Typen
- 6. Mock private statische final String mit Mockito
- 7. Initialisiere
- 8. Warum private statische endgültige Listen/Sets/Maps nicht modifizierbar machen?
- 9. initialisiere eine var in scala
- 10. CSV Lesen als leer
- 11. Initialisiere eine Auswahl in AngularJs
- 12. Private nicht statische Variablen in Polymer?
- 13. Private statische in JavaScript und Vererbung
- 14. Private vs Statische Konstruktoren in. Net
- 15. Test-private statische Methode wirft Missing
- 16. Private statische Mitglied in der Basisklasse
- 17. Anwendungsdienstschicht als statische Klassen
- 18. Google-Karte als Vektor-Karte
- 19. Initialisiere eine Seq von Seqs
- 20. Atlas-Stil Kartenindex für statische Google Karte
- 21. Wie überprüft man, ob eine Karte in Golang leer ist?
- 22. Statische Karte fügt erfolgreich Elemente hinzu, ist aber immer noch leer
- 23. (VS2015) eine statische Karte mit Daten aus Initialisiererliste
- 24. eine ungeordnete Karte mit Tupel als Schlüssel
- 25. Repository als statische oder nicht statische Klasse?
- 26. Strings auf statische Karte gespeichert werden überschrieben
- 27. Wie initialisiere ich eine Ansicht in H2
- 28. Assign Wert auf private statische Variable in einer Klasse
- 29. Fragmente als statische Klassen
- 30. Wie initialisiere ich eine HKObserverQuery mit updateHandler?
Es besagt, dass meine Map privat ist und daher die Standardinitialisierung am Anfang meiner CC-Datei ungültig ist. –
Poste deinen Code, du machst irgendwo einen Fehler. –
Ich musste meine Typedef in die Öffentlichkeit verschieben, behielt aber mein Mitglied privat. Das hat es behoben. –