访问成员函数中的调用者数据类型

时间:2011-12-27 10:25:02

标签: c++

我想做类似这样的代码:

myType a;
a->foo();

void foo()
{
   cout << a->bar(); 
}
void bar()
{
   cout << a->bar2();
}
void bar2()
{
   cout << a->bar3();
}

换句话说,当调用成员函数时,我们可以使用原始调用者吗?

2 个答案:

答案 0 :(得分:2)

你想:

cout << this->bar();

或者,更简单地说

cout << bar();

This IBM C++ documentation很好地解释了这一点。看看。

答案 1 :(得分:2)

你可能想要做的是这样的事情:

#include <iostream>

class myType {
    void foo()
    {
       std::cout << bar(); 
    }
    void bar()
    {
       std::cout << bar2();
    }
    void bar2()
    {
       std::cout << bar3();
    }
};

......在例如主要方法:

int main(int argc, char** argv)
{
    myType a;
    a->foo();
}

在类中,您可以仅通过名称引用同一类的方法,并且它们将在与原始方法相同的对象上调用!如果您想突出显示您指的是同一对象的方法,请使用例如this->bar()代替bar();如果有其他名称(例如方法参数)会隐藏类成员,但可以一直使用

,那么它只是必需