While this is a totally subjective question, I think the general C++ community prefers not to have
this->. Its cluttering, and entirely not needed.
Some people use it to differentiate between member variables and parameters. A much more common practice is to just prefix your member variables with something, like a single underscore or an
That is much easier to read, in my opinion. If you need
this-> to differentiate between variables, you’re doing it wrong. Either change the parameter name (from
newX) or have a member variable naming convention.
Consistency is preferred, so instead of forcing
this-> on yourself for the few cases you need to differentiate (note in initializer lists this is completely well-defined:
x(x), where the member
x is initialized by the parameter
x), just get better variable names.
This leaves the only time I use
this: when I actually need the address of the instance, for whatever reason.