I have heard that in C++, using an accessor ( get...() ) in a member function of the same class where the accessor was defined is good programming practice? Is it true and should it be done?
For example, is this preferred:
void display() {
cout << getData();
}
over something like this:
void display() {
cout << data;
}
data is a data member of the same class where the accessor was defined… same with the display() method.
I’m thinking of the overhead for doing that especially if you need to invoke the accessor lots of times inside the same class rather than just using the data member directly.
The reason for this is that if you change the implementation of
getData(), you won’t have to change the rest of the code that directly accessesdata.And also, a smart compiler will inline it anyways (it would always know the implementation inside the class), so there is no performance penalty.