8

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?

4

2 回答 2

7

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.

于 2011-02-08T07:55:32.170 回答
4
bar();//is this possible? or should you say this->bar()

this is implicit. So both of them are equivalent. You can use any of them. But then I think, if just bar() is enough, then why use this->bar()?

Use this only when there is some ambiguity, otherwise use the simpler one!

于 2011-02-08T06:44:26.007 回答