2012-09-27 104 views
3

我有類B和類A.在類B的方法中(讓它命名爲foo())我已經定義了類A的本地對象。在類A中,我有方法取B對象。當A對象在類B的方法中是本地的時,如何將B對象傳遞給此類的方法?如何將對象傳遞給本地對象方法?

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

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

回答

5

如果你想傳遞的B當前實例:如果你想有一個不同的實例

a.bar(*this); 

B b; 
a.bar(b); 

如果你想傳遞一個臨時的,你需要修改爲A::foo爲:

void bar(const B& b) 

然後直接通過它:

a.bar(B()); 
4

this指針是你需要什麼,它指向的實例的成員函數被調用的。

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