C ++ Member Referenz Basistyp 'int' ist keine Struktur oder Union

8

Ich stoße auf ein Problem in meinem C ++ Code.

Ich habe eine Union StateValue :

%Vor%

und eine Struktur StateItem

%Vor%

Ich habe eine Methode, die einen Vektor vom Typ StateItem

durchläuft %Vor%

Im Fall Hue bekomme ich den folgenden Compilerfehler:

%Vor%

Ich kann das Problem hier nicht verstehen. Kann jemand von euch mir bitte helfen?

    
Alex 27.01.2014, 17:36
quelle

4 Antworten

9

Sie versuchen, eine Memberfunktion für intValue aufzurufen, die den Typ int hat. int ist kein Klassentyp, also keine Elementfunktionen.

In C ++ 11 oder höher gibt es eine praktische Funktion std::to_string , um int und andere integrierte Typen in std::string :

zu konvertieren %Vor%

Früher mussten Sie mit String-Streams umgehen:

%Vor%     
Mike Seymour 27.01.2014, 17:45
quelle
2

Member reference base type 'int' is not a structure or union

int ist ein primitiver Typ, er hat weder Methoden noch Eigenschaften.

Sie rufen str() für eine Membervariable vom Typ int auf, und darüber beschwert sich der Compiler.

Ganzzahlen können nicht implizit in Zeichenketten umgewandelt werden, aber Sie können std::to_string() in C ++ 11, lexical_cast von boost oder den alt-langsamen Ansatz von stringstream verwenden.

%Vor%

oder

%Vor%

Und ändern Sie die Zeile zu:

%Vor%     
Juan Ramirez 27.01.2014 17:44
quelle
0

Ihr intvalue ist kein Objekt. Es hat keine Mitgliedsfunktionen. Sie könnten sprintf () oder itoa () verwenden, um es in eine Zeichenfolge zu konvertieren.

    
scraatz 27.01.2014 17:43
quelle
0

intValue ist ein int , es hat keine Methoden.

    
Yves Daoust 27.01.2014 17:44
quelle

Tags und Links