calling member functions from within another member function of the same class in C++, objective C

Namratha picture Namratha · Feb 8, 2011 · Viewed 31.1k times · Source

Consider the following:

class A{

    //data members

    void foo()
    {
        bar();//is this possible? or should you say this->bar() note that bar is not static
    }
    void bar()
    {

    }
}//end of class A

How do you call member functions from within another? And how does static functions affect the use of 'this'. Should functions be called on an object?

Answer

Ens picture Ens · Feb 8, 2011

Nawaz is correct: 'this' is implicit. The one exception is if foo were a static function, because in static functions there is no 'this'. In that case, you can't use bar() unless bar() is also a static function, and you can't use this->bar() at all.