Einsteigerfragen



  • Hallo zusammen,

    endlich konnte ich mich dazu durchringen, mich mit C++ zu beschäftigen. Bisher hatte ich nur Basiswissen in Turbo Pascal, Delphi, JavaScript(?!) und ein klein wenig PHP - das hat mir zwar die Grundlagen des Programmierens (Funktionen, Schleifen etc.) vermittelt, aber richtig sinnvolle Programme hab' ich bisher noch nicht geschrieben.

    Überheblicherweise dachte ich, dass dieses Basiswissen reichen würde, um auf Bücher zu verzichten und mich einfach aus dem großen Repertoire der Open Source Software zu bedienen und mir darüber die Eigenheiten von C++ anzugeignen.
    Also hab' ich mir Dev-C++ und den Quake II source code runtergeladen. Das Problem ist nur, dass ich bei all den ".C"-Dateien im Archiv keine Ahnung habe, bei welcher ich anfangen soll. Das gleiche auch beim nächsten Programm, also muss ich wohl doch zuerst einige andere Grundlagen lernen.
    Daher habe ich zwei Fragen:

    1. Kann mir jemand auf die Schnelle sagen, mit welcher der vielen ".C"-Dateien ich anfangen soll? (die müssten ja untereinander verlinkt sein, und es müsste eine 'Ausgangsdatei' geben)
    2. Kann mir jemand ein Buch empfehlen, das für C++-Einsteiger programmiertechnischem Basiswissen geeignet ist? Das Anfangsziel wäre, simple Windows-Anwendungen zu schreiben, das spätere Ziel, PC-Spiele mit veröffentlichtem SDK zu "modden" oder vielleicht sogar eigene Spiele zu schreiben.

    Im Voraus danke für die Hilfe!



  • Hallo,

    also ich glaube, dass es nix Falscheres gibt, als sich zuerst mit dem Quellcode von Quake 2 zu beschäftigen. Zum einen isses C, und nicht C++, und dann stellt sich die Frage, ob das irgendwie auch nur ansatzweise helfen kann. Ich behaupte mal nein....deine Frage kann ich aber auch nicht beantworten, vermutlich wird irgendeine Datei "main.c" oder so heissen, welche eine gute Anlaufstelle wäre.

    Wenn du C++ wirklich lernen willst, guck dir z. B. mal diesen Thread an:
    http://www.c-plusplus.net/forum/viewtopic.php?t=82160&highlight=c+lernen



  • Hi!

    Standard-C++ unterstützt keine GUI, sondern nur die Konsole. Aber idR ist man damit schon lange genug beschäftigt bis man es kann. C++ ist doch um einiges anders als TP und besonders umsteiger machen gerne Fehler (z.B. beim Vergleichoperator) die man nicht immer gleich sieht.

    Ein guten Buch für Einsteiger soll wie ich hier gelesen habe, wohl der C++ Primer sein. Aber guck einfach mal oben rechts unter dem Link "Bücher".

    Code-Hacker



  • Ich bitte dich. Löschen den Quake II source code. Der ist so scheiße das ich kotzen könnte. Damit kannst du auf keinen Fall irgendwie einsteigen.



  • Du kannst ja auch mal mit Tutorials lernen probieren.
    Auf www.robsite.de hat es einige Tutorilas für C++.



  • man sollte sich keinen profi code anschaun, wenn man nichtmal die grundlagen der sprache kennt, in der der code geschrieben ist 😉



  • Den Quake2 Code würde ich jetzt noch nicht verstehen.



  • @Ace_NoOne:
    Interessante Vorgehensweise! Leider für die meisten mangels Genie nicht gangbar. 😉
    Versuche nach folgender Struktur vorzugehen/zu unterscheiden:

    1. C++ Grundlagen (vielleicht auch etwas C)
    2. OOP (Klassen, ...)
    3. STL (hier liegt ein großer Schatz verborgen, siehe auch boost)
    4. GUI-Programmierung
    5. OpenGL und DirectX

    Gute Tutorials:
    http://www.cpp-tutor.de/cpp/toc.htm
    http://tutorial.schornboeck.net/inhalt.htm
    http://de.geocities.com/throni3/
    http://www.volkard.de/C++/



  • Erhard Henkes schrieb:

    @Ace_NoOne:
    Interessante Vorgehensweise! Leider für die meisten mangels Genie nicht gangbar. 😉
    Versuche nach folgender Struktur vorzugehen/zu unterscheiden:

    1. C++ Grundlagen (vielleicht auch etwas C)
    2. OOP (Klassen, ...)
    3. STL (hier liegt ein großer Schatz verborgen, siehe auch boost)
    4. GUI-Programmierung
    5. OpenGL und DirectX

    Gute Tutorials:
    http://www.cpp-tutor.de/cpp/toc.htm
    http://tutorial.schornboeck.net/inhalt.htm
    http://de.geocities.com/throni3/
    http://www.volkard.de/C++/

    Der Reihenfolge kann ich mich nur anschließen 👍



  • Hehe ich bin schon bei Punkt 1.



  • Hej,
    mal ne dumme frage: Was ist STL 😕
    Habe zwar schon in nem Buch nachgeblaettert und die SuchFunktion genutzt, ab er auf die schnelle nix gefunden.
    Es wuerden schon ein paar weitere Stichwoerter zum Thema reichen 🙂
    ByeBye, Viking69



  • lol. google.



  • Viking69 schrieb:

    Hej,
    mal ne dumme frage: Was ist STL 😕
    Habe zwar schon in nem Buch nachgeblaettert und die SuchFunktion genutzt, ab er auf die schnelle nix gefunden.
    Es wuerden schon ein paar weitere Stichwoerter zum Thema reichen 🙂
    ByeBye, Viking69

    Die STL is ne generische Bibliothek für C++, die dir viele Standardaufgaben abnimmt (suchen, sortieren etc).
    Für weitere Infos:
    http://www.sgi.com/tech/stl/
    oder google 🙂



  • #include <iostream>
    #include <string> // STL
    #include <conio.h>
    
    using namespace std;
    
    int main()
    {
      string s;
      cout << "Bitte Namen eingeben: ";
      cin >> s; 
      cout << "Willkommen im C++-Kurs, " << s << endl;
    
      getch();
    }
    

    Dieses einfache Programm verwendet bereits die Klasse string, die als sequentieller Container für character zur STL gehört.

    Die Template-Klasse basic_string<...> liefert z.B. die Grundlage für die Spezialisierungen string und wstring.

    Wer dies genau nachprüfen möchte, der kann z.B. beim Dev-C++ im Verzeichnis ...\Dev-Cpp\include\c++\bits\ die beiden Dateien basic_string.h und stringfwd.h unter die Lupe nehmen:

    //Ausschnitt aus stringfwd.h:
    
    namespace std
    {
      template<class _CharT> struct char_traits;
      template<> struct char_traits<char>;
    
    //...
    
      template<typename _Alloc> class allocator;
    
      template<typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> > class basic_string;
    
      typedef basic_string<char>     string;
      typedef basic_string<wchar_t> wstring;
    }
    

    Der Begriff string steht also für die auf character spezialisierte Template-Klasse basic_string<char>. Die Klasse basic_string mit all ihren Funktionen findet man in der Datei basic_string.h:

    namespace std
    {
      template<typename _CharT, typename _Traits, typename _Alloc> class basic_string
      {
        //...
      };
      //...
    }
    

    Inkludiert werden diese Klassen neben einer Menge anderer Hilfsmittel über <string>:

    // Ausschnitt aus <string>:
    
    #include <bits/c++config.h>
    #include <bits/stringfwd.h> 
    #include <bits/char_traits.h>
    #include <memory> 	        // For allocator.
    #include <bits/type_traits.h>
    #include <iosfwd> 	        // For operators >>, <<, and getline decls.
    #include <bits/stl_iterator.h>
    #include <bits/stl_function.h>  // For less
    #include <bits/basic_string.h>
    


  • Hej,
    ok danke fuer die schnellen Antworten.
    ByeBye, Viking69


Log in to reply