C++ 面试题 目录

C++ 中 mutable 关键字的作用是什么?

推荐答案

mutable 关键字用于修饰类的成员变量,允许在 const 成员函数中修改该变量的值。即使对象被声明为 constmutable 成员变量仍然可以被修改。

本题详细解读

1. mutable 的基本用法

mutable 关键字通常用于以下场景:

  • 当类的某个成员变量需要在 const 成员函数中被修改时。
  • 当类的某个成员变量用于缓存或记录状态,而这些状态的变化不应影响对象的逻辑状态时。

2. 示例代码

-- -------------------- ---- -------
----- ------- -
-------
    --------- - ---------- --

    ---- ----------- ----- -
        ----------  -- -- ------- - ----------- ----- -----
    -

    --- ------------ ----- -
        ------ --------
    -

--------
    ------- --- --------  -- ------- ----
--

--- ------ -
    ----- ------- ----
    ----------------  -- -- --- - ------------ -------
    --------- -- ---------------- -- ----------  -- -- -
    ------ --
-

3. 使用场景

  • 缓存机制:例如,一个类可能有一个成员变量用于缓存计算结果。即使对象是 const,缓存的值仍然可以被更新。
  • 调试和日志记录:在 const 成员函数中记录某些操作的状态或调试信息时,可以使用 mutable 变量。

4. 注意事项

  • mutable 应该谨慎使用,因为它破坏了 const 的语义。只有在确实需要修改某些不影响对象逻辑状态的成员变量时,才应使用 mutable
  • 滥用 mutable 可能导致代码难以理解和维护,因为它使得 const 成员函数的行为变得不可预测。
纠错
反馈