'const' Member-Funktion; was ist erlaubt?



  • Hi,

    ich bin noch etwas verwirrt, wie ich Funktionen zu verwenden habe, die ich auf const Pointern aufrufen kann.

    Bzw. habe ich es bis dato richtig verstanden, daß

    MyClass *m_pMyClass;
    const MyClass *m_pcMyClass;
    
    void MyClass::foo();
    void MyClass::cFoo() const;
    

    ich auf m_pMyClass foo() wie cFoo() aufrufen dürfte, auf m_pcMyClass lediglich cFoo()? Was darf ich den cFoo() denn alles machen? Wie ich gelesen habe, dürfte ich keine Member verändern; dürfte ich denn von cFoo() auf foo() zugreifen? Darf ich Funktionen auf Member-Pointern aufrufen, die die Pointern Adresse (hoffentlich :)) nicht verändern, aber die Objekte auf die gezeigt wird (nicht this)? Wo sind Grenzen und was dürfte ich darin alles?

    danke



  • Hallo

    siehe zum Beispiel hier

    ich auf m_pMyClass foo() wie cFoo() aufrufen dürfte, auf m_pcMyClass lediglich cFoo()?

    stimmt

    Was darf ich den cFoo() denn alles machen? Wie ich gelesen habe, dürfte ich keine Member verändern;

    stimmt

    dürfte ich denn von cFoo() auf foo() zugreifen?

    nein

    Darf ich Funktionen auf Member-Pointern aufrufen, die die Pointern Adresse (hoffentlich :)) nicht verändern, aber die Objekte auf die gezeigt wird (nicht this)?

    Du darfst zugreifen, aber wenn der Pointer ein Member von MyCLass ist auch in der Pointer-Instanz nichts ändern.

    bis bald
    akari


Anmelden zum Antworten