C++ Mutable 关键字17 Mar 2025 | 4 分钟阅读 Mutable 关键字在 C++ 中是非常有用的关键字。它用于更改或修改类数据成员,即使对象是 const 函数。举个例子,如果有一个包含五个非静态变量的类。所有这些变量都通过类构造函数赋值。在主函数中,您创建了一个对象并决定不更改该特定对象,因此您对该对象使用了 const。然而,过了一段时间,您只想更改其中两个特定变量。现在,您遇到了一个问题:如果您只想更改两个变量,您不能删除对象前面的 const。现在,mutable 关键字在这种情况下就会派上用场。假设您将类中的这两个非静态变量声明为 mutable。在这种情况下,您只能更改这些特定变量,而其他变量仍然是 const,不能更改。 示例一个演示 mutable 关键字用法的简单程序: 输出 ![]() 说明在此示例中,这个简单程序包含一个 main 函数和一个名为 MyClass 的类。在 MyClass 中,有两个变量,名为 variable1 和 variable2,它们都属于 int 数据类型,variable1 不是 mutable,而 variable2 是 mutable。这个类包含两个方法或函数,一个名为 setVariable2,另一个是简单的 display 方法。setVariable2 方法接受一个参数并将其赋值给 variable2。另一个函数 display 方法用于显示 variable1 和 variable2。 现在,在 main 类中,创建了一个对象并使用 const 关键字使其成为常量。因此,对象中的变量不能被修改,但是第二个变量 variable2 可以通过使用 setVariable2 方法进行修改或更改,因为 variable2 是可变的。在这里,mutable 关键字用于在整个 const 对象中仅更改特定变量。 示例现在,我们将把上述概念应用于日常生活 输出 ![]() 说明上述程序包含一个类和一个主函数。在类中,有一个构造函数和其他方法,如存款、取款和显示方法。这些共同使该类实现银行功能。该类名为BankAccount。它包含四个变量:accountHolderName,字符串数据类型;accountNumber,整型数据类型;balance,双精度浮点型数据类型;和lastTransactionDate,字符串数据类型。这里,balance和lastTransactionDate这两个变量是可变的。 存款方法接受一个参数,该参数是要添加到余额中的金额,并更新上次交易的时间。它使可变变量得以更改。取款方法也接受一个参数,该参数是要从余额中减去的金额,并再次更新上次交易的时间。如果银行中没有足够的金额,它会显示“资金不足”。之后,显示方法用于显示所有四个变量。 在主函数中,通过传入四个参数:姓名、账号、初始余额,创建了一个名为 account 的对象。首先调用了第一个显示方法。现在,存入了一些金额,然后再次调用显示方法。之后,再次调用取款方法,并再次调用显示方法。在每次显示方法之后,我们可以看到余额和上次交易日期的变化,它们是可变的,可以被修改。 下一主题将所有零移到 C++ 数组的末尾 |
? 在本文中,我们将讨论如何在 C++ 中创建用户定义数据类型的堆栈。但在讨论创建堆栈之前,我们必须了解堆栈。std::stack 是什么意思?堆栈是一种数据结构,使用后进先出 (LIFO) 原则...
阅读 4 分钟
在本文中,您将了解使用 C++ 进行算法交易,包括其示例、优点和缺点。引言:算法交易在金融市场中越来越受欢迎,交易员利用计算机算法以速度和精度执行策略。本指南概述了实现算法...
阅读 15 分钟
在浩瀚的 C++ 编程领域,标准模板库 (STL) 是一个包含强大功能的通用工具箱。该工具包中的一个亮点是 unordered_multimap 容器,它提供了一种动态管理键值对集合的方式。什么是 unordered_multimap?在开始之前...
阅读 6 分钟
函数重载和函数覆盖在面向对象编程 (OOPs) 中对于实现代码重用和灵活性至关重要。尽管它们听起来可能很相似,但这两个概念在根本上是不同的。本博客的目标是让读者全面了解 C++...
阅读 6 分钟
Prim 算法是一种贪心算法,用于查找连通无向图的最小生成树(MST)。图的最小生成树是边的子集,它形成一棵树并连接图中的所有顶点,同时最小化...
阅读 26 分钟
布尔值是 C++ 中的一种数据类型,表示真或假值。它通常在编程中用于控制程序流、做出决策和评估条件。在 C++ 中,布尔值是一种可以具有两个可能值的数据类型:true 或 false。布尔值是...
5 分钟阅读
一种称为“uckoo hashing”(布谷鸟散列)的哈希技术使用两个或多个哈希表来解决冲突。它基于多个哈希表和两个(或多个)哈希函数的概念。一个元素被移到另一个哈希表中可用的位置……
5 分钟阅读
在当今的软件开发领域,多线程是利用现代多核处理器全部潜力的基本概念。对于 C++ 开发人员来说,标准库提供了强大的线程管理工具,其中 std::thread 是一个核心组件。使用...的一个关键方面是...
阅读 6 分钟
简介 在 C++ 中,函数对象是创建可与语言标准库中的算法、容器和其他功能一起使用的自定义操作的强大工具。以下是对 C++ 函数对象的全面解释:什么是函数对象?通常称为函数对象的函数对象(Functors)...
阅读 3 分钟
悬空指针 悬空指针是指向已删除(或已释放)内存位置的指针。指针可以通过三种方式充当悬空指针。1. 内存解除分配 C++ 代码 // 解除分配 ptr 指向的内存导致 // 悬空指针 #include <cstdlib> #include <iostream> int main() { int* ptr = (int *)malloc(sizeof(int)); //...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India