Warum können Objekte nicht ohne ein Klassenschlüsselwort erstellt werden?

8

Der folgende C ++ - Code gibt beim Kompilieren einen Fehler aus:

%Vor%

Der folgende Fehler bekomme ich:

%Vor%

Wenn ich class vor der Anweisung 'time T1, T2, T3;' hinzufüge, funktioniert es gut.

Warum funktioniert es nicht ohne die Klasse ?

    
Habeeb Perwad 25.03.2012, 14:20
quelle

1 Antwort

15

Ihr Compiler definiert std::time und erwartet daher entweder time(...); oder% Code%. Der Klassenname time; ist mehrdeutig, daher wird das Schlüsselwort time benötigt. Um dies zu verhindern, verwenden Sie nicht class oder benennen Sie Ihre Klasse um.

Vergessen Sie nicht, das Namensraum-Qualifikationsmerkmal using namespace std; zu std:: hinzuzufügen, wenn Sie cout fallen lassen.

Ich empfehle, alle Compiler-Warnungen ( using namespace std; in g ++) zu aktivieren, um solche Fehler in Zukunft zu vermeiden, da GCC darauf hinweist, dass etwas nicht stimmt:

  

temp.cc:33:20: Warnung: Ausdruck ist eine Referenz, kein Aufruf der Funktion »time« [-Waddress]   temp.cc:33:20: Warnung: Ausdruck hat keine Auswirkung [-Wundungswert]

    
Zeta 25.03.2012, 14:24
quelle

Tags und Links