MST

星途 面试题库

面试题:C++ 类成员访问属性动态调整之中等难度

假设有一个C++类 `MyClass`,包含私有成员变量 `privateVar` 和公有成员函数 `publicFunc`。请使用 `friend` 函数实现对 `privateVar` 的间接动态访问调整,使得在特定条件下可以修改 `privateVar` 的值,并且在 `publicFunc` 中打印修改后的值。请给出具体代码实现。
32.9万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

class MyClass {
private:
    int privateVar;
public:
    MyClass() : privateVar(0) {}
    void publicFunc() {
        std::cout << "The value of privateVar is: " << privateVar << std::endl;
    }
    // 声明友元函数
    friend void adjustPrivateVar(MyClass& obj, int value, bool condition);
};

// 友元函数定义
void adjustPrivateVar(MyClass& obj, int value, bool condition) {
    if (condition) {
        obj.privateVar = value;
    }
}

int main() {
    MyClass obj;
    adjustPrivateVar(obj, 10, true);
    obj.publicFunc();
    adjustPrivateVar(obj, 20, false);
    obj.publicFunc();
    return 0;
}