Well, I'm not sure about this one.
I have a class like
class Object { int internalValue ; struct SomeStructType { int superInternalValue ; } someStruct ; public: int getInternalValue() { return internalValue ; } int getSuperInternalValue() { return someStruct.superInternalValue ; } void printThatInternalValue() { // Its seems pretty clear we should just access // the private value directly and not use the public getter printf( "%d", internalValue ) ; } void printThatSuperInternalValue() { // Now here the access pattern is getting more complicated. // Shouldn't we just call the public access function // getSuperInternalValue() instead, even though we are inside the class? printf( "%d", someStruct.superInternalValue ) ; } } ;
So for the class's INTERNAL operations, it CAN use someStruct.superInternalValue
directly, but it seems cleaner to use the class's public getter function getSuperInternalValue()
instead.
The only drawback I can see is if you tried to modify superInternalValue
using the getter would give you a copy, which is clearly not what you want in that case. But for reading access, should the public getter function be used internally inside a class?