Const in methode (a.k.a. Wer Fehler findet darf sie behalten)



  • Hallo,
    welche Funktion hat hier das const:

    int methode ()const {
    return i;}
    


  • Ich sehe da nur eine Funktion...
    Also welche Funktion ist const?
    BTW.:
    Dieses const sagt dem Compiler, dass sie das Objekt auf dem sie aufgerufen wird nicht verändert. Damit kann die Funktion auf const-Objekten aufgerufen werden.



  • Setzt man auch sehr oft bzw. eigentlich immer bei Get-Methoden einer Klasse.



  • welche Funktion hat hier das const:

    Ich sehe da nur eine Funktion...

    Da habt ihr wohl aneinander vorbeigeredet. xD



  • xD schrieb:

    welche Funktion hat hier das const:

    Ich sehe da nur eine Funktion...

    Da habt ihr wohl aneinander vorbeigeredet. xD

    lol. Da sieht man, was Gross/Kleinschreibung anrichten kann. 😃



  • Das hier ist wohl eines der kreativeren Missverständnisse seit langem. 😉
    (Sorry für OffTopic)



  • Stimmt. Habe zu schnell geantwortet. 🙂
    Hätte da wohl eher "macht" hingeschrieben, darum auch eher was kleines erwartet (respektive beim erste mal lesen gelesen). Ist mir auch erst aufgefallen, als ich "xD"'s Post gelesen habe. 😉



  • Psst, hat noch niemand gemerkt. Schnell weg damit! 😃



  • Da sieht man, was Gross/Kleinschreibung anrichten kann.

    Was hat das mit Groß/Kleinschreibung zu tun?

    @topic: Keine, wenn das keine Methode (Memberfunktion) ist



  • Ich fass mal zusammen...

    1. Lieber 3x lesen, wenn einen die Grammatik stutzig macht...
    2. Nimelas "Funktion" im Kontext einer "Funktion" sagen, wenn man "Bedeutung" oder "Aufgabe" meint.
      Gute Nacht... 😃


  • wx++ schrieb:

    Da sieht man, was Gross/Kleinschreibung anrichten kann.

    Was hat das mit Groß/Kleinschreibung zu tun?

    Nichts. Habe mich vertan. Manchmal sind meine Finger eben schneller, als mein Kopf. 😉 ( vor allem nach 3h Analysis )

    @topic: Keine, wenn das keine Methode (Memberfunktion) ist

    Ich bezweifle stark, dass das eine freie Methode ist, sonst macht das return i überhaupt keinen Sinn.



  • Nimelas

    Und es geht gleich weiter! 😃

    Das Wort muss ich mir merken, klingt nach Fantasy. Hier musste ich aber echt einige Sekunden studieren, bis ich drauf gekommen bin. 🙂



  • Nexus schrieb:

    Nimelas

    Und es geht gleich weiter! 😃

    Das Wort muss ich mir merken, klingt nach Fantasy.

    Nimelas! Ähh... Legolas! xD

    Liest du wirklich immer jedes Wort?! - Ich überles solche Sachen eh immer, weil ich meist gar nicht wirklich lesen, sondern nur die Wörter anschaue. 🙂
    Hab das mal ein wenig trainiert und bin mal bei ca. 1000WpM gewesen.



  • drakon schrieb:

    Liest du wirklich immer jedes Wort?!

    Wort schon, aber nicht jeden Buchstaben. Mir wäre auch nicht bekannt, dass ich besonders langsam oder schnell lese. Teilweise überlese ich Fehler auch, aber oft fallen mir falsch geschriebene Wörter gleich vom Schriftbild her auf. Doch dieser Thread ist sowieso ein Spezialfall. 😉



  • Nexus schrieb:

    Nimelas

    Und es geht gleich weiter! 😃

    Das Wort muss ich mir merken, klingt nach Fantasy. Hier musste ich aber echt einige Sekunden studieren, bis ich drauf gekommen bin. 🙂

    Sooo das kommt also nach 2h "Wächter der Nacht" + Rotwein raus...
    Aber merken ist nicht, ich habs erfunden 😛
    Und wenn ich das irgendwann mal in einem Science Fiction les oder seh, weiß ich ja wo das her ist 😉

    // edit:
    Alles klar. Nimelas ist der Held all jener, die schon vor ihrer Geburt von den bösen Eltern verheiratet werden.
    Nimelas ist der Retter der Versprochenen



  • So dann noch mal eine Frage:

    public:
    bool operator() (const T& a, const T& b) const {
    ...}
    

    Also das erste const sagt, die Referenz a darf nicht verendet werden. Analog zu b. Das letzte const sagt die Methode verändert nichts an dem Objekt.



  • Wo ist da die Frage?
    Ich sehe nur Aussagen, die allerdings richtig sind.



  • C++Noob_ schrieb:

    die Referenz a darf nicht verendet werden.

    Irgendwie ist in dem Thread der Wurm drin... 😃

    Und deine Feststellungen kann man so stehen lassen.



  • Ich kenne jemanden, der sich ein Buch mit dem Namen "effektiv C++ Programmieren" gekauft hat, in dem stand, dass ein const(ant) bei einer Funktion immer sinnvoll sei, wenn möglich, es heißt, dass dadurch die Geschwindigkeit des Programmes verbessert werde. [Ich halte mich in diesem Fall an den Konjunktiv.]
    Diesen Umstand hätte ich doch gern bestätigt oder wiederlegt gewusst. (Husten durch verstellen der Stimme *hust*)

    *Fehler suchend um Wortspiele zu vermeiden*



  • Hallo,
    ich mische mich hier mal ein. Wie sieht das bei Funktionen aus:

    const Rational add(const Rational& a, const Rational& b) {
    

    was macht da das erste const? das steht ja vor dem Rückgabetyo. Aber ein Konstanter Rückgabeltyp ist doch sinnlos, oder? Er ist ja eh nur temporär.


Log in to reply