MST

星途 面试题库

面试题:C++中成员函数如何访问不同对象的数据

假设有一个类 `MyClass` 包含成员变量 `int data;`,请说明成员函数如何区分不同 `MyClass` 对象的 `data` 数据,并编写代码示例展示这一过程。
23.5万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

在C++中,成员函数通过this指针来区分不同MyClass对象的data数据。this指针是一个隐含指针,它指向调用成员函数的对象。

以下是代码示例:

#include <iostream>

class MyClass {
private:
    int data;
public:
    MyClass(int value) : data(value) {}

    void printData() {
        // 使用this指针访问当前对象的data成员
        std::cout << "Object address: " << this << ", data value: " << this->data << std::endl;
    }
};

int main() {
    MyClass obj1(10);
    MyClass obj2(20);

    obj1.printData();
    obj2.printData();

    return 0;
}

在上述代码中:

  1. MyClass类有一个私有成员变量data
  2. 构造函数用于初始化data
  3. printData成员函数使用this指针来访问并打印当前对象的data值。通过调用不同对象的printData函数,可以看到不同对象的data值以及对象的地址,从而证明成员函数可以区分不同对象的data数据。