2016-03-28 8 views
-1
#include <iostream> 
#include <string> 
#include <sstream> 
#include <string> 

int coins = 0; 
std::stringstream ss; 
ss << 100 << ' ' << 200; 

Wenn ich über ss schweben erhalte ich die Fehlermeldung „Erklärung hat keine Speicherklasse oder Typbezeichner“ und wenn ich über << schweben bekomme ich die Fehler erwartet eine ;Fehler „Erklärung keine Speicherklasse oder Typbezeichner hat“, wenn string mit

+0

Während Sie solche Deklarationen haben können (obwohl Sie in Betracht ziehen sollten, keine globalen Variablen zu haben), muss der * Code * ('ss << 100 << '<< 200;') innerhalb einer Funktion sein. – crashmstr

+0

Dies ist nicht Ihr tatsächlicher Code, oder? – NathanOliver

+0

Nein, aber es ist das einzige Bit, in dem ein Fehler aufgetreten ist. – TheKian

Antwort

3

C++ nicht ausführbare Anweisungen außerhalb Funktionen erlaubt

Die ersten beiden Zeilen sind Erklärungen,... sie erlaubt sind, obwohl ich bezweifle, dass Sie sie global absichtlich gemacht, die letzte Zeile, jedoch , muss pla sein innerhalb einer Funktion, z.B. main:

int main() { 
    int coins = 0; 
    std::stringstream ss; 
    ss << 100 << ' ' << 200; 
} 
+0

Global gemacht, aber danke – TheKian

1

Diese können außerhalb einer Funktion sein:

int coins = 0; 
std::stringstream ss; 

jedoch kann dies nicht:

ss << 100 << ' ' << 200; 

So legte es in main() oder jede andere Funktion.

Verwandte Themen