2015-12-08 60 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

相关问题