2015-12-08 62 views
-1

我想在我的類定義中使用兩個類對象創建一個函數。我想輸入第一個對象作爲函數的參數,第二個對象作爲被調用的對象例如:ClassObject1.function(ClassObject2)您可以引用在類對象函數中調用的對象嗎?

我的問題是我如何引用被調用的對象, ClassObject1,在函數內?

+1

該對象是'* this'。所以你可以編寫'(* this).function(ClassObject2)'或者同樣''this-> function(ClassObject2)''但是'function(ClassObject2)'有什麼問題? (在普通的課程中,「this->」暗含在需要的地方)。 – JSF

+2

'this'。你的C++書的前10頁。 – YSC

+1

我不確定這個問題是否真的很清楚。 「這個」不應該從班級自己的成員職能中獲得。我想從OP的說明(也許有些代碼,即使它被破壞)。 – Steve

回答

0

this是一個指向成員函數被調用的對象的指針。

當您想要返回對該對象的引用或在成員函數內部創建對象的副本時,通常需要this

0

我的問題是我該如何引用被調用的對象,ClassObject1,在函數內?

關鍵字this是指向調用函數的對象的指針。在非靜態成員函數內部,您可以使用this來引用該對象。

void MyClass::function(MyClass obj2) 
{ 
    std::cout << "The address of the current object is: " << (void*)this << std::endl; 

    // Call another member function on the same object. 
    this->function2(); 

} 

請參閱more on this pointer

相關問題