'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