const



  • Ist es überflüssig, wenn man 2x const schreibt?

    typedef unsigned long long nhuLong;
    
    inline const nhulLong getAvailablePhysical(nhVoid) const
    {
       return(memStateEx_.ullAvailPhys);
    }
    

    oder hat das den gleichen Effekt?

    inline nhulLong getAvailablePhysical(nhVoid) const
    {
       return(memStateEx_.ullAvailPhys);
    }
    


  • Hallo

    beide const haben eine unterschiedliche Bedeutung.
    das const vor dem Rückgabetyp bedeutet das der zurückgegebene Wert const sein soll.
    das const nach dem Methodennamen bedeutet das diese Methode auf dann aufgerufen werden kann, wenn die Instanz für die es aufgerufen wird const ist. Siehe auch hier.

    bis bald
    akari



  • Also macht es nur dann Sinn, den Rückgabewert const zu machen, wenn man einen Zeiger oder eine Referenz zurückgibt.[cpp]



  • Hallo

    So sehe ich das auch. Andereseits gibts es natürlich auch Konstellationen wo auch bei Rückgabe von Pointern/Referenzen eine Änderung möglich sein soll.

    Beide const haben auch einen logischen Zusammenhang

    class A
    {
      ...
      const class B* GetB() const {return m_b;};
      class B* GetB() {return m_b;}
    };
    
    const class A* a1;
    class A* a2;
    
    a1->GetB()->... // erster Getter wird verwendet, B kann nicht verändert werden
    a2->GetB()->... // zweiter Getter wird verwendet, B kann verändert werden
    

    bis bald
    akari


Log in to reply