Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ mutable的用法

作者:﹏尐甶园   发布日期:2026-06-10   浏览:54

#include <iostream>
#include <string>

class Person {
public:
    Person(const std::string& name) : name(name), age(0) {}

    // 常量成员函数中修改 mutable 成员变量
    void printAge() const {
        ++counter;  // 修改 mutable 成员变量
        std::cout << "Name: " << name << ", Age: " << age << ", Accessed: " << counter << " times" << std::endl;
    }

    void setAge(int a) {
        age = a;
    }

private:
    std::string name;
    int age;
    mutable int counter = 0;  // 可以在常量成员函数中修改的成员变量
};

int main() {
    const Person p("Alice");
    p.printAge();  // 输出: Name: Alice, Age: 0, Accessed: 1 times
    p.printAge();  // 输出: Name: Alice, Age: 0, Accessed: 2 times

    return 0;
}

解释说明:

  • mutable 关键字用于声明类中的成员变量,使得该成员变量可以在常量成员函数(即带有 const 修饰符的成员函数)中被修改。
  • 在上面的代码中,counter 是一个 mutable 成员变量。尽管 printAge 是一个常量成员函数,它仍然可以修改 counter 的值。
  • 这种用法通常用于记录对象的状态变化或访问次数等不需要影响对象逻辑状态的信息。

上一篇:c++中++i和i++的区别

下一篇:c++中或者用什么符号

大家都在看

c++闭包

c++向上取整的代码

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++怎么输入字符串

c++字符串切片

c++ functional

c++框架代码

c++格式化字符串

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站