Problem mit Zeigern


  • Administrator

    @Mods,
    Aber nicht zurück in den MFC Bereich, sondern nach C++ 😃

    @Wasabi666,
    Tjo, kommt davon, wenn man im falschen Forum postet, dann wird man rumgeschubst. Bevor du dann im C++ Bereich landest, gebe ich dir schon mal einen Tipp:
    Zeig was du bisher versucht hast und woran du gescheitert bist. Man wird es nicht einfach für dich lösen, wenn du keine Eigeninitiative zeigst.

    Und noch ein paar Tipps zum Umstieg:
    1. C++ und Java sind zwei KOMPLETT UNTERSCHIEDLICHE SPRACHEN. Nicht mal die Syntax ist wirklich gleich.
    2. Probier in C++ nicht wie in Java und in Java nicht wie in C++ zu programmieren, damit fällst du auf die Nase.
    3. Besorg dir ein gutes C++ Buch und zwar ein Grundlagenbuch. Vergiss was du in Java gelernt hast, das meiste kannst du in C++ nicht anwenden. Gute und meist empfohlene Bücher sind:
    - C++ Primer
    - Thinking in C++ 1&2 (auch gratis als PDF verfügbar, nur Englisch)

    Grüssli



  • Danke dir schonmal Dravere. Also woran ich gescheitert bin, sind die Zeiger innerhalb einer Klasse, die vom Typ der Klasse sind, in welcher sie auch instanziert werden, und mich beschleicht das gefühl, dass das in C++ ein Ding der Unmöglichkeit ist, ich hoffe Ihr könnt mich eines Besseren belehren :-), wär ich sehr glücklich drüber ^^



  • Also in C++ sieht der Code folgendermaßen aus:

    #include <string>
    
    class node
    { 
    public:
        node *left, *right; // sind die Zeiger(*) in C++
        std::string data; //Inhalt der jeweiligen Instanz
    
        node(const std::string &d)
          : data(d), left(0), right(0) // Initialisierungsliste
        {
        }
    }
    

    wobei die Member besser 'private' wären und über konstante getter-Methoden ausgelesen werden sollten.

    In Java und C# sind Klassen immer Referenztypen, während in C++ standardmäßig Wertetypen sind.



  • Ok danke, jetzt weiß ich wenigstens mal warum das mim string net wollte 😃 std:: fehlte ^^
    Zeiger hab ich auch gerallt (mich schon mit befasst), nur der konstruktor... warum konstante, warum wird die initialisierung direkt hinter dem methodenkopf durchgeführt?? Also ich kann mich zwar damit abfinden, dass es so gemacht wird, aber innerhalb der Methode ist das nicht möglich?? (Ich weiß ich sollte mir eigentlich erst Literatur zum Thema vornehmen, aber ich hab's bisher immer so gehalten, dass ich durch Projekte die sprachen gelernt habe, und ich hab dabei wunderbar viel gelernt)

    Edit: Bevor ichs vergesse - warum das & vorm d ^^? soweit ich weiss gibt das dann doch die speicheradresse an oder?



  • Oh, und noch eine Frage...
    Mach ich nicht praktisch meine "eigenen" Zeiger, indem ich in der Klasse node einfach node-Objekte initialisiere... (In Java gabs halt in dem Sinne keine Zeiger)

    Sprich: node-Objekt hat ein linkes und ein rechtes node-Objekt, die wieder ein linkes und rechtes haben...
    Ich bin grad total unsicher, böses Java -.-


  • Administrator

    Also tut mir leid, aber da kann ich wirklich nur noch etwas sagen:
    Lies ein Buch, so wie du es selbst schon festgestellt hast. Man darf hier schliesslich erwarten, dass du zumindest die Syntax und die wesentlichen Grundlagen der Sprache kennst. Das ist hier kein interaktives Tutorial oder sowas in der Art.

    Und erst recht bei C++ empfehle ich dir dringends die Grundlagen zu büffeln, denn die sind nicht einfach und müssen sitzen.

    Grüssli



  • 😃 ok da hast du recht, syntax... sitzt prinzipiell schon, und einige konsolenanwendungen hab ich geschrieben, am besten sacht mal wie weit ich sein sollte um sowas hier zu posten?



  • Sooo, mir wurde eben C++ Primer empfohlen, auf die schnelle hab ichs bei Amazon nur auf Englisch gefunden?! Hat jemand ncoh andre VOrschläge oder einen Link zur deutschen Variante?


  • Administrator

    Wasabi666 schrieb:

    😃 ok da hast du recht, syntax... sitzt prinzipiell schon, ...

    Da habe ich grosse Zweifel, denn was du bisher geschrieben hast, lässt auf etwas anderes schliessen. Ich kann mich nur wiederholen, die Syntax ist in Java und C++ anders! Sie sehen höchstens ähnlich aus, aber das ist schon alles. Oft ist sogar bei ähnlicher Syntax eine andere Bedeutung vorhanden.

    Wasabi666 schrieb:

    ... , am besten sacht mal wie weit ich sein sollte um sowas hier zu posten?

    Diese Frage ist äusserst schwer zu beantworten. Grundsätzlich solltest du hier nicht mit Fragen daherkommen, wo die Antwort in einem Grundlagenbuch steht. Du solltest die Grundlagen beherrschen. Zum Beispiel wissen, was eine Referenz ist.

    Das Forum soll mehr eine zusätzliche Hilfestellung sein. Also wenn du ein Buch liest und bei einem Kapitel Probleme hast etwas zu verstehen, dann kannst du die Leute im Forum konsultieren. Dabei aber nicht passiv sein, sondern aktiv vom ersten Beitrag an.
    Oder wenn du konkrete Problemstellungen hast, wo du selber es schon versucht hast, aber irgendwo stecken geblieben bist, dann kannst du hier Hilfe finden. Zeig aber dann, was du bisher schon gemacht hast.

    Auch gibt es im Forum FAQs und eine Suchfunktion, wenn diese zum Teil auch ein wenig zu wünschen übrig lässt.

    Zum Primer:
    Das erste Resultat bei einer Suche nach "C++ Primer" auf amazon.de ist die deutsche Version ...
    C++ Primer | ISBN: 3827326125

    Grüssli



  • Oh. Ich schwörs bei mir wars Englisch... Sorry und Danke, ich denke das ist gut investiertes Geld!
    Danke Euch allen, wenn ich Probleme habe, weiss ich wo ich mich mit meiner konkreten und umfassenden Fragestellung hinwenden kann 🙂

    lg daniel

    Edit: ich schwör gar nix mehr, bei mir ist es auf einmal auch direkt die deutsche... bin heute iwi... verwirrt


Anmelden zum Antworten