cout

Gerki

Grünschnabel
Hi, ich bin ehemaliger c++ prorammierer und hab mich entschlossen wieder anzufangen;
dass ich jetzt .h weglassen muss hab ich gemerkt doch neuerdings funktionniert mein cout befehl nicht mehr. Gibts den nicht mehr? Hier ein einfacher Helloworld script den ich zu Zeigzwecken geschrieben habe:

#include <iostream>
int main()
{
cout << "Hello World";
return 0;
}

wenn ich dieses jetzt kompilier in Borland Dev c++ sat er mir dass cout undefined ist. Was ist da los?

Gerki
 
Hallo,

cout ist kein Befehl sondern ein globales Objekt vom Typ ostream. Da es global ist
sollte man es vor Redefinitionen scuetzen koennen.
Da kommt der Namespace ins Spiel:
Code:
#include <iostream>
int main()
{
    std::cout << "Hello World" << std::endl;
}
oder:
Code:
#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World" << endl;
}

Siehe auch:
http://www.cplusplus.com/doc/tutorial/namespaces.html

Gruß

RedWing
 
Hi.

Alle Objekte/Klassen/Funktionen der Standard Template Library (STL) sind im Namensraum std definiert.

C++:
#include <iostream>
...
std::cout << "Hallo." << std::endl;
Ein gutes Buch das den C++ Standard von 1996 beinhaltet sollte dir da eigentlich extrem gut weiterhelfen können. ;) Außerdem solltest du dir als erstes mal die Namensräume bzw. namespace (Schlüsselwort) anschauen.

Gruß
 
OK, funktionniert jetzt, aber ist das neu? Als ich noch vor einem halbem Jahr programmiert hab hatte cout << "§§§§§""; genügt.

Gerki
 
Gerki hat gesagt.:
OK, funktionniert jetzt, aber ist das neu? Als ich noch vor einem halbem Jahr programmiert hab hatte cout << "§§§§§""; genügt.
Also wie gesagt ist der aktuelle C++ ANSI/ISO Standard von 1996 - inzwischen also ca. 10 Jahre alt. Neu ist das nun wirklich nicht mehr.

Allerdings ist es bei den meisten Compilern so (aus Kompatibilitätsgründen für alten Code), das der std Namensraum automatisch benutzt wird wenn man einen alten Header mit .h Endung verwendet.

Gruß
 
Achso hab immer den mit .h benutzt der jetzt nicht mehr funktionniert. Dann liegts daran.

Danke Gerki
 
deepthroat hat gesagt.:
Also wie gesagt ist der aktuelle C++ ANSI/ISO Standard von 1996 - inzwischen also ca. 10 Jahre alt.
Gruß

Ich bin der meinung das ich vor ca zwei Monaten in er Zeitung gelesen habe des der zweite C++ Standard fertig sei.

hmm hab das hier bei wikipedia gefunden:

"Nach jahrelanger Arbeit wurde schließlich 1998 von der ISO die endgültige Fassung der Sprache C++ (ISO/IEC 14882:1998) genormt.

2003 wurde die erste überarbeitete Version von ISO/IEC 14882:1998 verabschiedet (ISO/IEC 14882:2003). Diese Revision ist lediglich eine Nachbesserung der Norm ISO/IEC 14882:1998 und sollte nicht mit der in Arbeit befindlichen Version verwechselt werden. Die nächste Version der Sprache C++ erscheint voraussichtlich noch in dieser Dekade. (s. in der Entwicklung befindliche Version)"

Kann mir einer da weiterhelfen?
 
Hi.
Messiahs_128 hat gesagt.:
Ich bin der meinung das ich vor ca zwei Monaten in er Zeitung gelesen habe des der zweite C++ Standard fertig sei.
Hm. Also davon hab ich noch nichts gehört und ich hab auch nichts dergleichen auf der Seite vom C++ Standards Commitee gefunden.

Messiahs_128 hat gesagt.:
hmm hab das hier bei wikipedia gefunden:

"Nach jahrelanger Arbeit wurde schließlich 1998 von der ISO die endgültige Fassung der Sprache C++ (ISO/IEC 14882:1998) genormt.
Mit 1996 hab ich mich geirrt. Richtig ist natürlich 1998. Inwieweit die Revision von 2003 den ursprünglichen Standard geändert hat kann ich dir nicht sagen.

Gruß
 

Neue Beiträge

Zurück