hallo world



  • Ach so, du bist schon wesentlich weiter?
    Dann google mal nach c++ namespace.



  • ich hab auch sehr selten internet zugang (alle 2 wochen am we) ich überlege mir aber einen Lidel Internetstick zu holen, anderer seits kann ich mir meine fragen aufschreiben und alle 2 wochen mal ne seschen einlegen mit googleln chatten und forum



  • ja das nechste kapitel ist über Ein- Ausgabe



  • Sone schrieb:

    Osbios schrieb:

    In std befinden sich unter anderem die Funktionen cout und endl.

    cout ist eine Funktion? oO

    Osbios schrieb:

    Man könnte den Code so schreiben:

    #include <iostream>
    
    void main()
    {
        std::cout << "hallo welt" << std::endl;
    }
    

    Was zum..? Welcher Compiler schluckt diesen Code?

    Der Korrektheit zur Liebe: std::cout ist ein Objekt mit einer Methode für den << Operator.

    Ich weiß jedoch nicht was an dem Code auszusetzen ist.



  • void main() ist schon seit C++98 nicht standardkonform.



  • ...ja das hallo welt hab ich nur so jetzt aus dem internet, ich programmiere mit code::blocks und gcc. also void ist wohl auch so ein daten typ und nicht mehr aktuell oder wie?...

    zu namespace
    also ist das so eine art vriablen deffinition ?

    void f() { ; } // Funktion auffindbar im globalen Namensraum
    namespace MTF
    {
    void f() // Funktion auffindbar im Namensraum MTF
    {
    throw std::exception("f - ausgelöst");
    };
    }
    Im Folgenden der Aufruf:
    void g()
    {
    f(); // f() aus globalem Namensraum wird aufgerufen
    MTF::f(); // f() aus Namensraum MTF wird aufgerufen
    using namespace MTF; // Namensraum MTF wird sichtbar gemacht
    f(); // f() aus Namensraum MTF wird in diesem Fall aufgerufen
    }



  • Ich habe auch dieses Buch und soweit bin ich klar gekommen. Namensräume werden ab Seite 141 näher erläutert. Viel spaß 🙂



  • hey cool



  • [quote="Sone"]

    cout (und endl) ist irgendwo definiert.

    Irgendwo? Nein, nicht irgendwo. In <ostream> .
    [quote]
    Also doch irgendwo?!



  • Ach übrigens: cout ist bei mir in iostream.



  • Nathan schrieb:

    Ach übrigens: cout ist bei mir in iostream.

    Ich wette meinen linken Daumen, dass du nicht verstehst was die Begriffe Deklaration und Definition in C++ bedeuten, und nur die Deklaration gefunden hast. 😉
    (Das merkt man schon an der Aussage: "[...] ist bei mir in iostream")


  • Mod

    Sone schrieb:

    Nathan schrieb:

    Ach übrigens: cout ist bei mir in iostream.

    Ich wette meinen linken Daumen, dass du nicht verstehst was die Begriffe Deklaration und Definition in C++ bedeuten, und nur die Deklaration gefunden hast. 😉
    (Das merkt man schon an der Aussage: "[...] ist bei mir in iostream")

    cout ist auch nicht in ostream definiert.



  • Warum den linken? Den rechten willst du wohl nicht verlieren, was? :p
    Mit "ist in iostream" meinte ich "ist in iostream deklariert".
    Die Definition von cout wird vermutlich in irgendeinem *.cpp-File.

    Edit: Menno, Sepp war schneller.



  • Nathan schrieb:

    Warum den linken? Den rechten willst du wohl nicht verlieren, was? :p
    Mit "ist in iostream" meinte ich "ist in iostream deklariert".
    Die Definition von cout wird vermutlich in irgendeinem *.cpp-File.

    Gut, gut. Es ging nur gerade um die Definition, da hörte es sich so an...

    SeppJ schrieb:

    Sone schrieb:

    Nathan schrieb:

    Ach übrigens: cout ist bei mir in iostream.

    Ich wette meinen linken Daumen, dass du nicht verstehst was die Begriffe Deklaration und Definition in C++ bedeuten, und nur die Deklaration gefunden hast. 😉
    (Das merkt man schon an der Aussage: "[...] ist bei mir in iostream")

    cout ist auch nicht in ostream definiert.

    Ja, stimmt. Frag nicht wieso ich das im Kopf hatte. Es war wegen dem Wikipedia-Artikel, der immer verlangt hat, dass <ostream> eingebunden wird. Daher hatte ich bis jetzt komischerweise gedacht, das... 😕 sry



  • Zenter schrieb:

    Ich habe auch dieses Buch und soweit bin ich klar gekommen. Namensräume werden ab Seite 141 näher erläutert. Viel spaß 🙂

    Jau. Und auf Seite 32, im Kapitel "Das erste Programm", wird das auch so beschrieben, daß using namespace später noch genauer erklärt wird. Mit Seitenangabe. Und dort steht auch int main().



  • küche schrieb:

    ...ja das hallo welt hab ich nur so jetzt aus dem internet, ich programmiere mit code::blocks und gcc. also void ist wohl auch so ein daten typ und nicht mehr aktuell oder wie?...

    zu namespace
    also ist das so eine art vriablen deffinition ?

    void f() { ; }  // Funktion auffindbar im globalen Namensraum
    namespace MTF            
    { 
      void f() // Funktion auffindbar im Namensraum MTF
      {
        throw std::exception("f - ausgelöst");
      };
    }
    Im Folgenden der Aufruf:
    void g()
    {
      f();                       // f() aus globalem Namensraum wird aufgerufen
      MTF::f();                  // f() aus Namensraum MTF wird aufgerufen
      using namespace MTF;       // Namensraum MTF wird sichtbar gemacht
      f();                       // f() aus Namensraum MTF wird in diesem Fall aufgerufen
    }
    

    using namespace sagt dem compiler, dass er auch in MTF suchen soll. Der letzte Aufruf von f() ist nicht eindeutig und der Compiler würde mecken.

    Dort müsste: ::f(); oder MTF::f(); stehen.



  • Sone schrieb:

    [...]
    Ja, stimmt. Frag nicht wieso ich das im Kopf hatte. Es war wegen dem Wikipedia-Artikel, der immer verlangt hat, dass <ostream> eingebunden wird. Daher hatte ich bis jetzt komischerweise gedacht, das... 😕 sry

    Hast Du auch nachgedacht und mal überlegt, warum das so ist? Oder hast Du danach das Denken aufgegegeben (Der Grund ist mit C++11 übrigens hinfällig geworden).



  • Ja, das Problem ist, std::ostream (bzw. basic_ostream ) wird ja in <ostream> definiert. Das hatte ich so verstanden. Dann hatte ich aber komischerweise in Erinnerung, dass auch std::cout dort definiert wurde. Das ist alles.



  • könnte man die MTF nicht ohne namespac deklarieren? und aufrufen, oder ist namespaces ein dateityp? P.S ich kann jetzt vom meinem Praktikum ans Internet



  • Das buch(der C++ Programmierer) find ich aber sher schwierig, langsam (bin auf Seite 82) mache ich mir sorgen, ob ich das demnächst noch verstehe. Ich gucke mir mal "c++ crashkurs für anfänger" von youtube an und vielleicht noch ein tetris quellcode...
    gibts vielleicht ein einfacheres buch oder ne Seite wie ich C++ lernen kann?


Anmelden zum Antworten