Ho un static map
che è un membro di dati private
. Come inizializzarlo nel file di implementazione in modo che i suoi contenitori iniziali siano vuoti? Non è const
. È importante che nulla sia in questo contenitore all'inizio.Inizializzazione di una mappa privata statica come vuota
risposta
intestazione: file di
class XXX {
private:
static std::map<X,Y> the_map; // declares static member
// ...
Implementazione:
std::map<X,Y> XXX::the_map; // defines static member
che inserirà una chiamata al costruttore per la mappa nel codice di inizializzazione del programma (e un distruttore nella pulizia). Attenzione però: l'ordine dei costruttori statici come questo tra unità di traduzione diverse non è definito.
ne dite di questo (se ho capito bene):
std::map<T,T2> YourClass::YourMember = std::map<T,T2>();
Oppure semplicemente 'std :: map
@MikeSeymour: Esattamente. Sto solo chiarendo che potresti dare argomenti al costruttore se lo volessi. – Linuxios
Se si definisce nella definizione della classe, poi si deve dichiarare che l'attuazione:
--- 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
è possibile utilizzare una di inizializzazione, troppo :
std::map<int,std::string> SomeClass::myMap = std::map<int,std::string>(myComparator);
Nitpick: sarebbe/dichiarato/nella classe e/definito/nell'implementazione. – Grault
- 1. Inizializzazione statica in Go?
- 2. inizializzazione di una variabile statica nell'intestazione
- 3. inizializzazione variabile statica java
- 4. Posso eseguire un'importazione statica di una sottoclasse privata?
- 5. Come creare una mappa statica di stringhe -> Array
- 6. Come ottenere i limiti di una mappa statica google?
- 7. Elenco di inizializzazione del costruttore con inizializzazione vuota
- 8. inizializzazione di un puntatore statica in C++
- 9. inizializzazione java statica con ereditarietà
- 10. PHP | Perché dovrei usare la funzione statica pubblica/privata statica invece della funzione pubblica/privata?
- 11. ordine di inizializzazione variabile statica, Java
- 12. inizializzazione statica in un'unità di compilazione
- 13. Errore di heat della mappa di base/mappa vuota
- 14. Inizializzazione statica e distruzione di globals di una libreria statica non avvenuta con g ++
- 15. Stringa privata o Stringa statica pubblica?
- 16. accesso a una mappa statica da una funzione membro statica - errore di segmentazione - C++
- 17. Inizializzazione elementi di una mappa in modo condizionale in Clojure
- 18. Mappa modulo privata per un framework
- 19. Inizializzazione statica C++ tramite contatore Schwartz
- 20. inizializzazione della variabile statica con se stesso
- 21. Variabile finale statica privata all'interno di un enum
- 22. Come convertire una chiave privata in una chiave privata RSA?
- 23. vuoto Mappa del modello corrisponde anche per non vuota Mappa
- 24. Controllare se una mappa è vuota in Apache Velocity
- 25. C++ Inizializzazione della variabile di struttura const statica
- 26. Problemi lanciare i kernel CUDA dal codice di inizializzazione statica
- 27. Java problema ordine di inizializzazione, statica e campi istanza
- 28. Come realizzare una proprietà privata?
- 29. Modificatori di accesso all'interno di una classe nidificata statica privata in Java
- 30. Come serializzare una mappa di una mappa con GSON?
Dice che la mia mappa è privata e quindi l'inizializzazione predefinita nella parte superiore del mio file CC non è valida. –
Pubblica il tuo codice, stai facendo un errore da qualche parte. –
Ho dovuto spostare il mio typedef in pubblico, ma ho mantenuto il mio membro privato. Questo l'ha risolto. –