MST

星途 面试题库

面试题:C++常引用在类成员函数中的应用及数据保护

在C++类中,假设有一个成员函数需要访问类的成员变量,同时要保证该成员变量不被修改,使用常引用应该如何设计这个成员函数?请写出完整的类定义和成员函数实现,并说明如果不使用常引用可能会带来的问题。
42.5万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

class MyClass {
private:
    int memberVariable;

public:
    MyClass(int value) : memberVariable(value) {}

    // 使用常引用设计成员函数
    void printValue(const int& ref) const {
        std::cout << "Value: " << ref << " and memberVariable: " << memberVariable << std::endl;
    }
};

如果不使用常引用,在函数中不小心修改了传入的变量值,会导致数据的意外更改,破坏数据的完整性。特别是当该变量在其他地方有重要用途时,这种意外修改可能会引发难以调试的逻辑错误。在上述代码场景下,如果成员函数 printValue 接收的不是常引用,就有可能修改传入的 ref 值,不符合题目中保证成员变量不被修改的要求。