Not possible: this pointer as a default argument. Why?
The following code won't compile. Why? class A { int j; void f( int i = this->j ); } Edit, for clarity. This is what I was trying to do, using less lines of code... class A { void f( int i ){}; void f( ); int j; }; void A::f() { f( j ); } Eric Default argument values are bound at compile time. "this" is only defined at run time, so can't be used. See here for a fuller explanation: Must default function parameters be constant in C++? Others have already commented on the reason this doesn't work. From one of the comments: "...The expression can combine functions that are visible in the current