面试题答案
一键面试- 成员函数区分不同对象的
data
成员数据的方式:- 每个
MyClass
对象在内存中都有自己独立的成员变量data
的副本。当一个成员函数printData
被调用时,它是通过特定的对象来调用的。例如,假设有两个MyClass
对象obj1
和obj2
,obj1.printData();
和obj2.printData();
。编译器会将调用函数的对象的地址作为隐含参数传递给成员函数。这样,printData
函数在执行时,就知道要访问哪个对象的data
成员变量。
- 每个
this
指针的作用:this
指针是一个隐含在每一个非静态成员函数中的指针。它指向调用该成员函数的对象。在printData
函数内部,如果要显式访问data
成员变量,可以写成this->data
。例如,void MyClass::printData() { std::cout << this->data << std::endl; }
。通过this
指针,成员函数可以明确地操作调用它的对象的成员变量,从而实现对不同对象的data
成员变量的区分和访问。