While striving for const-correctness, I often find myself writing code such as this
class Bar; class Foo { public: const Bar* bar() const { /* code that gets
You can do something like this:
class Bar; class Foo { public: const Bar* bar() const { return getBar(); } Bar* bar() { return getBar(); } private: Bar* getBar() const {/* Actual code */ return NULL;} };