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

How to pass object to local object method?

本文关键字:对象 方法      更新时间:2023-10-16

我有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)
  {
     ...
  }
};

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

a.bar(*this);

如果需要其他实例:

B b;
a.bar(b);

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

void bar(const B& b)

然后直接传递:

a.bar(B());

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

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