Tutorials gesucht: Praxis der Programmierung



  • Hallo,

    ich suche Tutorials über die Praxis der Programmierung mit C++.
    Hintergrund ist, daß ich zwar theoretisch C++ beherrsche, praktisch aber recht wenig damit mache. Aus diesem Grund fehlt mir viel Wissen über gängige Bibliotheken, APIs und wie man diese verwendet ... zum Beispiel welche Datentypen man für Strings verwenden sollte, welche Bearbeitungsfunktionen es dafür gibt, wo diese deklariert sind, welche Kapselungen es gibt, welche Schnittstellen offene Standards sind etc.

    Dabei möchte ich mich nach Möglichkeit nicht zu eng an der BS-spezifischen Bibliotheken orientieren. Was ich brauche, sind im Prinzip praktische Beschreibungen gängiger Bibliotheken.

    Danke im Voraus,
    Konrad -



  • Wie wäre es wenn du Praxiserfahrung sammelst indem du Programme schreibst?



  • Wenn ich dich richtig verstehe, geht es dir um den Umgang mit der Standard-C++ Library? Und darüber hinaus um andere nützliche Libraries, die nützlich sind aber vom Betriebssystem unabhängig sind?

    Da wäre natürlich einmal die STL (Standard Template Library) von C++, die einem schon sehr viel Arbeit abnimmt, und auch zeigt, wie man mit C++ "arbeitet". Z.B. auch den Datentyp für Strings: die Standard-Klasse heißt (wen soll es wundern?) string. 😃

    Entweder du schlägst dich durch das Web oder suchst dir ein vernünftiges Buch (ich halte Bücher für am besten). Mit diesem Buch habe ich gute Praxiserfahrung mit der STL gemacht:

    http://www.amazon.de/exec/obidos/ASIN/3540678921/qid=1082300690/sr=2-2/ref=sr_aps_prod_2_1/028-5333184-2024507

    Es wird erstmal etwas über die STL erzählt, wie sie prinzipiell arbeitet und dann werden alle Klassen abgearbeitet. Wobei die STL so aufgebaut ist, das wenn man eine Klasse verstanden hat, alle anderen nur noch nachschlagen muß, wenn man ein Problem lösen will. Am ende des Buchs, gibts noch ein Aktiendepot Beispiel, das sehr schön zeigt, wie man sowas mit der STL designed und programmiert.

    Ansonst kann ich nur sagen: sich viele andere Libraries anschauen und natürlich auszuprobieren. Z.B. wie ein XML-Parser zu benutzen ist.

    Eigentlich läuft alles nach dem selben Strickmuster ab: man hat Klassen und instanziert diese und dann kann man deren Methoden benutzen. Fertig.



  • MaSTaH schrieb:

    Wie wäre es wenn du Praxiserfahrung sammelst indem du Programme schreibst?

    ah, gute Idee 🙄

    Nur, da hapert's schon beim Definieren der Strings: was verwendet man: "string", "char*", "LPWSTR", ...? Was mir dann passiert: ich schreibe mir meine eigene Stringklasse, weil mir die anderen zu konfus sind / ich nicht weiß, was für Funktionen dafür geboten werden.

    Genau das ist ja mein Problem: ich möchte nicht jedes Mal meine eigene Stringklasse schreiben.

    (Ist mir gerade wieder passiert, ich wollte nur schnell einen Scanner schreiben, der Unicode-Zeichen versteht. Meine erste Aktion war: eine struct "WideChar" definieren. Kurz darauf ist mir eingefallen, daß es ja "WCHAR" gibt. -- daher dieses Thread)

    Gruß,
    Konrad -



  • Artchi schrieb:

    Entweder du schlägst dich durch das Web oder suchst dir ein vernünftiges Buch (ich halte Bücher für am besten).

    Full Ack. Leider sieht meine Geldbörse das im Moment geringfügig anders 😉
    Nun, trotzdem danke für den Buchtip, ich denke, sobald wieder ein wenig Geld in der Kasse ist, werde ich mir das besorgen.

    Solange halten mich vielleicht die STL-Tutorials auf dieser Seite über Wasser (gerade erst entdeckt ...).

    Vielen Dank,
    Konrad -



  • Ja und? Wenn du nicht weißt, welche Methoden die string-Klasse hat, dann muß man eine Dokumentation zu Rate ziehen. Es ist nichts verwerfliches dabei, in eine Doku zu schauen. Dafür sind die da! Auch Bücher werden nicht aus Jux und Dollerei geschrieben, sie sollen Programmierer unterstützen. Warum? Weil man sich nicht alles merken kann. Klar, die Klassen die man täglich benutzt, kennt man irgendwann auswendendig, da brauch ich nicht mehr nachschlagen.

    Nur, da hapert's schon beim Definieren der Strings: was verwendet man: "string", "char*", "LPWSTR", ...?

    Und ich kann dir auch gleich eine Lösung aus der STL anbieten:

    std::string *myString = new std::string("Hallo! Ein Text im String!");
    

    Diese Klasse kann EINIGES, du kannst den String durchsuchen, weitere Teile ranhängen, abschneiden usw. Ohne das du dich um etwas kümmern mußt.

    myString->append("ich hänge noch was dran!");
    

    Fertig! Ohne das man sich um etwas kümmern muß. Die klasse findest du in der header-Datei <string>.

    Unicode-Strings gibts auch in der STL:

    std::wstring
    

    Kann analog zur Klasse string behandelt werden, mit dem Unterschied das es Zeichen vom Typ wchar_t verarbeitet. Auch (File)streams für wstring gibt es in der STL:

    std::wiostream
    std::wfstream
    

    Man soll es nicht glauben! 😮



  • Artchi schrieb:

    Und ich kann dir auch gleich eine Lösung aus der STL anbieten:

    std::string *myString = new std::string("Hallo! Ein Text im String!");
    

    Äh.



  • Artchi schrieb:

    Ja und? Wenn du nicht weißt, welche Methoden die string-Klasse hat, dann muß man eine Dokumentation zu Rate ziehen.

    Ja, RTFD. Kenne ich. Nur, dazu muß man wissen, welche Doku es zu lesen gibt. Nun, da das Stichwort STL gefallen ist, ist das möglich (Das war der Sinn des Threads).



  • OK, dann war meine Vermutung richtig, das du praktisch keine Literatur hast. 😃 Gut, dann würde ich sagen: sparen für die nächsten Bücher! 😉 Im ernst, ohne Bücher ist man praktisch verloren. Meine größten Investitionen in Bezug auf Programmierung, habe ich immer in Bücher getätigt. Und es werden auch weiterhin welche gekauft werden müssen.

    Das Buch ist auch irgendwann mal pflicht:
    http://www.amazon.de/exec/obidos/ASIN/382731660X/qid=1082304544/sr=2-1/ref=sr_aps_prod_1_1/028-5333184-2024507
    da es vom C++-Erfinder höchstpersönlich ist. Darin findet man ALLES zum C++ Standard. Es ist aber weniger zum lernen gedacht (auch wenn darin Übungen sind), aber man kann darin schmökern und nachschlagen. Kostet zwar 49 EUR, aber hat auch über 1030 Seiten mit wertvollen Informationen (und kleiner Schrift, also wirklich sehr viel Inhalt!):

    Und wenn man MEINT, man kann C++, sollte man das hier lesen:
    http://www.amazon.de/exec/obidos/ASIN/3827313058/ref=pd_sim_dp_1/028-5333184-2024507

    "Meinen" deshalb, weil man dann eines besseren belehrt wird, und man vieles nicht richtig oder optimal gemacht hat. Auch sehr lesenswert! (die Kapitel kann man kreuz und quer lesen)



  • Hallo,

    also zur Standard Library kann ich dieses Buch empfehlen:
    The C++ Standard Library | ISBN: 0201379260

    Wenn du des Englischen ein bisschen mächtig bist, solltest du dabei keine Schwierigkeiten haben. Hier wird nicht nur die STL beschrieben, sondern die komplette Standard Library.

    Wobei strings auch nicht zur STL gehören. Die STL ist doch nur ein Teil der Standard Library, und die umfasst so Sachen wie vector & Co:
    www.cppreference.com



  • Artchi schrieb:

    OK, dann war meine Vermutung richtig, das du praktisch keine Literatur hast. 😃

    AAMOF: nein. Ich habe zwei Bücher zum Thema C++, beide so ca. 1300 Seiten und div. Programmierbücher über andere Sprachen, in dennen teilweise C(++) vorkommt.

    Das Problem sind nicht die Bücher, sondern die Themen: beide C++-Bücher handeln fast ausschließlich von den MFC, der WinAPI, COM und anderem propritärem Kram. Aber als Strings verwenden die Autoren fast durchgängig "char*" (in Ausnahmefällen MS-proprietäre Datentypen). Naa klasse.


Anmelden zum Antworten