Mam static map
, która jest elementem danych private
. Jak zainicjować go w pliku implementacji, aby początkowe kontenery były puste? To nie jest const
. Ważne jest, aby na początku nic nie było w tym pojemniku.Zainicjuj statyczną prywatną mapę jako pustą
Odpowiedz
nagłówka: plik
class XXX {
private:
static std::map<X,Y> the_map; // declares static member
// ...
realizacji:
std::map<X,Y> XXX::the_map; // defines static member
To będzie wstawić wywołanie konstruktora dla twojej mapie do kodu inicjalizacji programu (i destruktora do czyszczenia). Bądź jednak ostrożny - kolejność konstruktorów statycznych takich jak ta między różnymi jednostkami tłumaczeniowymi jest niezdefiniowana.
Jak o tym (jeśli dobrze rozumiem poprawnie):
std::map<T,T2> YourClass::YourMember = std::map<T,T2>();
Lub po prostu 'std :: map
@MikeSeymour: Dokładnie. Po prostu wyjaśnienie, że możesz podać argumenty konstruktora, jeśli chcesz. – Linuxios
Jeśli zdefiniować go w definicji klasy, to musisz zadeklarować ją w realizacji:
--- 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
Można użyć inicjalizacji, zbyt :
std::map<int,std::string> SomeClass::myMap = std::map<int,std::string>(myComparator);
Nitpick: Byłby/zadeklarowany/w klasie i/zdefiniowany/w implementacji. – Grault
- 1. Dlaczego mamy niezmienną pustą mapę?
- 2. Grails: zainicjuj zmienną statyczną o wartości zdefiniowanej w config.groovy
- 3. Dołącz statyczną mapę witryny do Liferay
- 4. Jak wywołać prywatną metodę statyczną za pomocą refleksji (Java)?
- 5. Jak mogę sfałszować prywatną metodę statyczną za pomocą PowerMockito?
- 6. Jak dynamicznie definiować metodę jako prywatną?
- 7. Utwórz aplikację NodeJs jako prywatną na Heroku
- 8. Jak odzyskać statyczną mapę pokazującą granice miasta lub gminy
- 9. Zainicjuj IEnumerable <int> jako opcjonalny parametr
- 10. ObjectMapper - zainicjuj obiekt IOS
- 11. PowerShell nie zwraca pustą tablicę jako tablicę
- 12. jak zniszczyć mapę jako klucz i wartość
- 13. Jak dodać prywatną CocoaPod jako zależność w innym pliku .podspec?
- 14. Java: Dlaczego możemy zdefiniować klasę najwyższego poziomu jako prywatną?
- 15. Myląc „zastąpić prywatną metody”
- 16. Jak określić metodę prywatną
- 17. Dokumentowanie prywatną konstruktora z JSDoc
- 18. Uruchom Angular2 jako aplikację statyczną w przeglądarce bez serwera.
- 19. Klasy ruby: zainicjuj jaźń kontra @ zmienna
- 20. Zainicjuj pobieranieHandler z clientData w Shiny
- 21. Zainicjuj HashMap za pomocą tablicy elementów?
- 22. dynamicznie ładujesz bibliotekę statyczną?
- 23. C++ zainicjować macierz statyczną
- 24. Jak zainicjować statyczną tablicę?
- 25. Linq zastępuje pustą wartość pustą inną wartością
- 26. Sprężyna JdbcTemplate/NamedParameterJdbcTemplate przekazująca wartość pustą jako wartość parametru
- 27. wyświetlić macierz, w tym wartości, jako mapę cieplną
- 28. Jak serializować mapę jako listę przy użyciu obiektu Jackson
- 29. Jak wyśmiać prywatną zmienną dao?
- 30. Jak definiujesz pakiet-prywatną * cechę * w Scali?
Mówi, że moja mapa jest prywatna, więc domyślna inicjalizacja na górze mojego pliku CC jest nieprawidłowa. –
Po przesłaniu kodu, gdzieś popełnisz błąd. –
Musiałem przenieść mój typedef do publicznego, ale zachowałem mojego członka prywatnego. To naprawiło to. –