MST

星途 面试题库

面试题:C++中如何在类外访问私有成员变量的可访问函数机制

在C++中,已知一个类有私有成员变量`privateVar`,请编写代码通过成员函数来实现对该私有成员变量的读和写操作,并说明为什么要通过这种方式访问私有成员变量而不是直接访问。
31.8万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

代码实现

#include <iostream>

class MyClass {
private:
    int privateVar;

public:
    // 写操作函数
    void setPrivateVar(int value) {
        privateVar = value;
    }

    // 读操作函数
    int getPrivateVar() const {
        return privateVar;
    }
};

为什么通过成员函数访问而不是直接访问

  1. 数据封装:通过成员函数访问私有成员变量,可以将数据的具体实现细节隐藏起来,只暴露必要的接口给外部使用。这样外部代码不需要了解类内部的数据结构,只需要调用公开的接口函数即可,增强了代码的安全性和可维护性。
  2. 一致性和控制:使用成员函数可以对数据的访问和修改进行统一的控制。例如,在setPrivateVar函数中可以添加数据验证逻辑,确保赋给privateVar的值是合理的。如果直接访问私有成员变量,就无法保证这种一致性和控制。