2016-05-21 3 views
-1

Ich habe Probleme beim Kompilieren einer Klasse mit einer Map. Ich definiere im privaten Bereich die Struktur und deklariere dann de map. Die Sache ist, dass der Compiler g ++ mir einen Fehler in den Funktionen gibt, wo ich Iteratoren zu dieser Map verwende, da es scheint, dass g ++ die Struktur nicht erkennt.Fehler beim Kompilieren der Headerdatei mit einer Map vom Typ map <string, struct>

.hh Datei:

#ifndef _X_HH_ 
#define _X_HH_ 
class X{ 
public: 
(lots of function and procedure headers) 

private: 
struct something{ 
(Its attributes) 
}; 
map<string,something> mymap; 
}; 
#endif 
+3

Was ist der Fehler genau? – coredump

+0

Einen öffentlichen Typalias erstellen? http://ideone.com/1GwQsX – kfsone

+0

Forgot to '#include ' und 'std ::' ?. Sieht so aus, als ob mehr Includes fehlen. –

Antwort

0
#include <map> 
#include <string> 

class X{ 
public: 
    X(); 

private: 
struct something{ 
int a; 
}; 

std::map<std::string,something> mymap; 
}; 

int main(){ 
} 
+1

Fügen Sie bitte eine Erklärung hinzu. Was macht dieser Code? – cst1992

+0

Dieser Code ist die .hh-Datei einer Klasse, die in ihren Attributen eine Struktur enthält, die zwei verschiedene int-Werte und eine Zuordnung und eine Zuordnung enthält. Die Sache ist, dass ich nicht weiß, ob ich die Struktur in der privaten oder in der Öffentlichkeit der .hh-Datei deklarieren muss, da ich einen Kompilierungsfehler erhalte, wenn ich versuche, die .cc-Datei dieser Klasse zu kompilieren. Der Compiler erkennt die Struktur nicht, wenn sie in den Kopfzeilen der Funktionen der Klasse in der .cc-Datei eintrifft. –