I’ve recently spent a lot of time with javascript and am now coming back to C++. When I’m accessing a class member from a method I feed inclined to prefix it with this->.
class Foo {
int _bar;
public:
/* ... */
void setBar(int bar) {
this->_bar = bar;
// as opposed to
_bar = bar;
}
}
On reading, it saves me a brain cycle when trying to figure out where it’s coming from.
Are there any reasons I shouldn’t do this?
Using this-> for class variables is perfectly acceptable.
However, don’t start identifiers with an underscore, or include any identifiers with double underscore
__anywhere. There are some classes of reserved symbols that are easy to hit if you violate either of these two rules of thumb. (In particular, _IdentifierStartingWithACapital is reserved by the standard for compilers).