如何将对象传递给本地对象方法?

时间:2012-09-27 12:43:15

标签: c++

我有B类和A类。在B类的方法中(让我们把它命名为foo())我已经定义了A类的本地对象。在A类中,我有采用B对象的方法。当A对象在B类方法中是本地的时,如何将B对象传递给A类的这个方法?

class B {
public:
  void foo()
  {
     A a;
     a.bar(???); // want to pass B object?
  }
};

class A {
public:
  void bar(B& b)
  {
     ...
  }
};

2 个答案:

答案 0 :(得分:5)

如果要传递B的当前实例:

a.bar(*this);

如果你想要一个不同的实例:

B b;
a.bar(b);

如果您想传递临时内容,则需要将A::foo修改为:

void bar(const B& b)

然后直接传递:

a.bar(B());

答案 1 :(得分:4)

this指针是您需要的,它指向调用成员函数的实例。

a.foo(*this); // dereference since 'this' is a pointer