Unterschiedliche C++ Compiler



  • otze schrieb:

    Ich geb dir nur einen tipp: kauf dir ein ordentliches Buch, nicht den ich lerne X in Y Tagen schrott.

    Ich fand es bisher recht ausführlich und es hat mich schon sehr weit gebracht. Bis auf diese eine Stelle!

    Zudem weiß ich nicht, was du mit "ordentlichem" Buch meinst! ISBN?

    Ringding schrieb:

    Schreibt man da nicht normalerweise ein & vor den Funktionsnamen?

    pFunc ist ein Elementfunktionszeiger!



  • sirvenue schrieb:

    otze schrieb:

    Ich geb dir nur einen tipp: kauf dir ein ordentliches Buch, nicht den ich lerne X in Y Tagen schrott.

    Ich fand es bisher recht ausführlich und es hat mich schon sehr weit gebracht. Bis auf diese eine Stelle!

    naja, vll solltest du dich mal bzgl modularisierung schlau machen.
    Deine klassen könntest du alle in einzelne header und source dateien packen und auch die main in eine seperate datei. oder hast du die nur fürs forum zusammenkopiert? wenn ja ok.
    Dazu kommt noch das du
    [ cpp ] tags statt [ code ] benutzen solltest und das du

    statt

    #include<iostream.h>
    

    einfach

    #include<iostream>
    

    schreiben solltest.

    Den code hab ich mir aber ncoh nicht genauer angeguggt



  • shapeless schrieb:

    naja, vll solltest du dich mal bzgl modularisierung schlau machen.
    Deine klassen könntest du alle in einzelne header und source dateien packen und auch die main in eine seperate datei. oder hast du die nur fürs forum zusammenkopiert? wenn ja ok.
    Dazu kommt noch das du
    [ cpp ] tags statt [ code ] benutzen solltest und das du

    statt

    #include<iostream.h>
    

    einfach

    #include<iostream>
    

    schreiben solltest.

    Den code hab ich mir aber ncoh nicht genauer angeguggt

    Ich habe es der übersicht wegen zusammengeschrieben. Die Einbindung von "iostream" hatte keine Probleme gemacht und ich selbst schreibe es auch immer <iostream>, im Buch-Quellcode war es jedoch mit ".h".



  • sirvenue schrieb:

    shapeless schrieb:

    naja, vll solltest du dich mal bzgl modularisierung schlau machen.
    Deine klassen könntest du alle in einzelne header und source dateien packen und auch die main in eine seperate datei. oder hast du die nur fürs forum zusammenkopiert? wenn ja ok.
    Dazu kommt noch das du
    [ cpp ] tags statt [ code ] benutzen solltest und das du

    statt

    #include<iostream.h>
    

    einfach

    #include<iostream>
    

    schreiben solltest.

    Den code hab ich mir aber ncoh nicht genauer angeguggt

    Ich habe es der übersicht wegen zusammengeschrieben. Die Einbindung von "iostream" hatte keine Probleme gemacht und ich selbst schreibe es auch immer <iostream>, im Buch-Quellcode war es jedoch mit ".h".

    gut dann sind diese Sachen ja geklärt 😉

    aber mal zum code. ich bin nicht soo fit was funktionszeiger angeht aber
    die zeile die du ansprichst ist mir nicht geheuer. Du hast eine rein virtuelle methode, willst auf sie einen zeiger zeigen lassen, aber das geht nicht ohen instanz, welche man nicht erzeugen kann, weil es ja eine abstrakte klasse ist.
    also kannst du sie nur static oder virual machen ...hmm wie gesagt ich bin da kein experte aber da ist was faul.



  • Ok, habe soweit verstanden, was du meinst. Das Merkwürdige ist nur, in Visual C++ 6 funktioniert es ohne Probleme...

    Mal so nebenher - brauche ich das denn wirklich alles für die Programmierung auf z.B. Windows-Systemen?



  • hmm auch wenns komisch klingen mag aber hast du mal
    das hier

    void (Part::*pFunc)()const = &Part::Display;
    

    probiert ?
    mit gcc gehts auf diese weise.

    Naja, dennoch werde ich mich wohl diesbezüglich mal weiterinformieren müssen...
    wollte keine unnötige verwirrung stiften



  • sirvenue schrieb:

    Mal so nebenher - brauche ich das denn wirklich alles für die Programmierung auf z.B. Windows-Systemen?

    Naja, ich weiss nicht was du später machen willst, aber ich denke Vererbung und Funktionspointer und solche Sachen, sind Dinge die man als Werkzeug braucht,
    deshalb würde ich sagen japp das meiste brauchst du wieder.



  • Vielen Dank, bei mir funktioniert es ebenfalls! Man muss also die Adresse mit übergeben. Visual Studio erkennt es scheinbar auch ohne das "&".

    Für dich als kleine Auffrischung (wenn es wirklich so wichtig ist 😉 ):

    Man könnte es auch so schreiben:

    // konstanten Elementfunktionszeiger einrichten, der "void" zurückliefert und keine Werte (daher die leeren Klammern "()") übernimmt und diesen NULL setzen
    
         void (Part::*pFunc)()const = NULL;
    
    // Adresse von der Elementfkt. im Nachhinein übergeben
         pFunc = &Part::Display;
    


  • sirvenue schrieb:

    Visual Studio erkennt es scheinbar auch ohne das "&".

    Ein Fehler beim MSC 6. Wurde hier aber schon tausendmal diskutiert, dass der nicht standardkonform ist.



  • sirvenue schrieb:

    pFunc ist ein Elementfunktionszeiger!

    Gut, dass du mittlerweile auch schon draufgekommen bist, dass es mit & funktioniert... 🙄


Anmelden zum Antworten