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