ich möchte c++ lernen



  • Verstehst du dieses Programm komplett? (Thema: lokale Kopie in der Funktion auf dem Stack)

    #include <iostream>
    #include <conio.h>
    using std::cout;
    using std::endl;
    
    //globale Variablen
    int a = 1; 
    int b = 2;
    
    void ausgabe()
    {
        cout << &a << ": " << a << "\t " << &b << ": " << b  << endl << endl;
    }
    
    void erfolgloser_swap( int x, int y ) // call-by-value
    {
      cout << "Kopien auf dem Stack: " << endl;
      cout << &x << ": " << x << "\t " << &y << ": " << y << endl;
    
      int temp = x;
      x = y;
      y = temp;
    
      cout << &x << ": " << x << "\t " << &y << ": " << y << endl;
      cout << "swap nur lokal erfolgreich." << endl;
    }
    
    void zeiger_swap( int * x, int * y ) // C-Lösung  call-by-reference
    {
      int temp = *x; // Inhalts-Operator // Dereferenzierungs-Operator
      *x = *y;
      *y = temp;
    }
    
    void referenzen_swap( int & x, int & y ) // C++-Lösung   call-by-reference
    {
      int temp = x;
      x = y;
      y = temp;
    }
    
    int main()
    { 
        cout << "Ausgangssituation: " << endl;
        ausgabe();
    
        cout << "Tausch mittels std::swap(x,y): " << endl;            
        std::swap(a,b); // Methode der Wahl aus der STL
        ausgabe();
    
        cout << "Tausch mittels Zeiger: " << endl;            
        zeiger_swap(&a, &b);
        ausgabe();
    
        cout << "Tausch mittels Referenzen: " << endl;            
        referenzen_swap(a,b);
        ausgabe();
    
        cout << "Erfolgloser Tausch, da nur lokale Kopien getauscht werden." << endl;            
        erfolgloser_swap(a,b);
        ausgabe();
    
        cout << "Tausch mittels Register eax und ebx: " << endl;         
        //swap (a,b) 
        __asm("mov _b, %eax"); //AT&T Syntax bei Dev-C++ 
        __asm("mov _a, %ebx"); 
        __asm("mov %eax, _a"); 
        __asm("mov %ebx, _b"); 
        ausgabe(); 
    
        getch();
    }
    


  • Aktiviere bitte deine email-Adresse, dann schicke ich etwas zum Fehlersuchen zu.



  • @cer13erus: Ich denke die Konsole demotiviert dich etwas. Man muss da Anfangs durch und außerdem zaubert man schöne Programme, wenn man kreativ ist.

    Liebe Grüße
    Reality



  • ab wann sollte man den anfangen mit win programmierung dann wenn man komplett konsole kann?



  • wann sonst?



  • ich mein wenn ich ein normales c++ buch mach da kommt nirgends win programmierung. heisst das das wenn ich das buch durch hab mir eins für win holen muss oder kommt da noch irgendwas dazwischen?



  • Hallo,

    es kommt doch auch immer drauf an, was du machen willst. Wenn du z. B. Netzwerkprogrammierung machen willst, brauchst du GUI-Programmierung überhaupt nicht.

    Zum Zeitpunkt kann man immer schlecht was sagen, aber ich denke wenn du die meisten oder zumindest viele Fragen beantworten kannst, die im C++ Forum gestellt werden, könntest du reif sein.

    Du siehst ja selber, wo du die meisten Probleme hast. Wenn du beispielsweise Vererbung und Polymorphismus noch gar nicht verstanden hast, brauchst du dich mit Sachen wie GTKmm oder wxWidgets gar nicht beschäftigen. Und das MVC-Prinzip solltest du zumindest schonmal gehört haben und ein paar Entwurfsmuster wären auch nicht schlecht. Das ist zumindest meine Meinung. Allerdings gab es dazu schon etliche Threads, einfach mal suchen.



  • <= Java-Programmierer

    Ich denk mal, wenn du das wichtigste kannst wie Zeiger, Referenzen, OOP, Vererbung, Polymorphie, I/O etc. bist du bereit für die GUI-Programmierung. Wenn dir eines der Wörter nichts sagt, bist du jedenfalls nicht bereit.

    Liebe Grüße
    Real



  • thx leute!!
    ich werd mich da in den nächsten tagen mal durch arbeiten, vielleicht kommen dann zwischen dur ab und an mal ein paar fragen 😉 aber ich denke das wir erstmal so zu schaffen sein, BIG THX 👍

    mfg
    -cer13erus



  • Aktiviere bitte deine Mail-Adresse im Forum. 😉



  • @Facer:
    Versuche beim Lernen von C++ nach folgender Struktur vorzugehen:

    1. C++ Grundlagen (vielleicht auch etwas C)
    2. OOP (Klassen, ...)
    3. STL (siehe auch boost)
    4. GUI-Programmierung
    5. OpenGL und/oder DirectX


  • Facer schrieb:

    ab wann sollte man den anfangen mit win programmierung dann wenn man komplett konsole kann?

    kommt drauf an, was du vor hast.
    willste schnell klickibuntis machen, dann frühenstens nach dem buch "effektiv c++ programmieren" und nachdem du es begriffen hast.
    willste schnell guru werden, dann sollstest du in der tat vor win-programmierung die ein wenig lisp reinpfeifen (um programmieren zu lernen (wer c++ kann, kann lange noch nicht programmieren!!!(drei rufzeichen))) und java (mal ne gute lib sehen, bevor man mit mist arbeitet).
    dann haste gute grundlagen. dein interesse muss sein, programmieren zu lernen. ne willkürliche gui-lib ist später mal einfach sowas irrelevantes wie ms-word kennen und damit texte schreiben können oder apache kennen und damit im config-file php einschalten können.
    sobald du von einer gui-lib etwas lernst, was du später mal gebrauchen könntest, haste verloren. geh in diesem falle sofort zurück zu den grundlagen und finde heraus, weshalb die gui-lib das doch schlecht gelöst hat.


Anmelden zum Antworten