вызов функций-членов из другой функции-члена того же класса в C ++, цель C - PullRequest
5 голосов
/ 08 февраля 2011

Рассмотрим следующее:

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

Как вы вызываете функции-члены из другого?И как статические функции влияют на использование «this».Должны ли функции вызываться для объекта?

Ответы [ 2 ]

6 голосов
/ 08 февраля 2011

Наваз прав: «это» неявно. Единственное исключение - если бы foo была статической функцией, потому что в статических функциях нет «this». В этом случае вы не можете использовать bar (), если bar () также не является статической функцией, и вы вообще не можете использовать this-> bar ().

2 голосов
/ 08 февраля 2011
bar();//is this possible? or should you say this->bar()

this неявно. Так что оба они эквивалентны. Вы можете использовать любой из них. Но тогда я думаю, что если достаточно bar(), то зачем использовать this->bar()?

Используйте this только тогда, когда есть некоторая неопределенность, в противном случае используйте более простой!

...