`
isiqi
  • 浏览: 16494145 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

c++关键字mutable

阅读更多

先说用法,mutable关键字只能修饰非静态以及非常量成员变量,使用mutable修饰的成员变量在const函数中的值是可以修改的。
比如说下面的代码:
class Demo
{
public :
Demo() {}
~Demo() {}
public :
bool getFlag()const
{
m_nAccess++;
return m_bFlag;
}
private :
int m_nAccess;
bool m_bFlag;
};

int main()
{
return 0 ;
}
编译的时候会报错,因为const成员函数修改了成员变量,但是如果声明m_nAccess的时候加上关键字mutable就可以了。

PS:一个对象的状态由该对象的非静态数据 成员决定,所以随着数据成员的改变, 对像的状态也会随之发生变化! 如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是该函数不会修改类的非静态数据成员.但是有些时候需要在该类函数中对 类的数据成员进行赋值.这个时候就需要用到mutable关键字了。

分享到:
评论

相关推荐

    c++关键字mutable深入解析

    在C++编程语言中,`mutable`是一个特殊的关键字,它的主要作用是允许在const成员函数内部修改对象的成员变量。通常,const成员函数承诺不修改对象的状态,但`mutable`关键字提供了一种机制,使得程序员可以在保持...

    C++关键字大全(67个).txt

    C++关键字大全(67个) asm auto bad_cast bad_typeid bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum except explicit extern false finally float ...

    volatile关键字 Const关键字 static关键字 mutable 关键字

    在C/C++编程语言中,`volatile`, `const`, `static` 和 `mutable` 是四个非常重要的关键字,它们各自有着独特的用途和含义。下面将详细解释这些关键字的作用以及它们在程序设计中的应用。 1. `volatile` 关键字 `...

    C++关键字详细使用

    long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try type_info typedef typeid...

    c++关键字解释大全

    ### C++关键字详解 在C++编程语言中,关键字具有特定的语法意义,它们由编译器识别并赋予特殊含义。下面将详细介绍一系列C++的关键字及其用途。 #### asm(汇编指令) - **功能**:`asm`关键字用于嵌入汇编代码到...

    c++关键字详解

    本文将深入探讨几个重要的C++关键字:volatile、mutable、explicit以及dynamic_cast。 首先,volatile关键字是用于处理多线程环境中的共享变量的。在多线程编程中,当多个线程需要访问并修改同一个变量时,为了确保...

    C++关键字和操作符替代名

    ### C++关键字和操作符替代名 #### 概述 在C++编程语言中,关键字是具有特定含义的预定义标识符,它们被语言保留用于构成语法结构的关键部分。此外,C++还支持一系列操作符,包括算术、比较、逻辑等类型。为了提高...

    聊聊C++的mutable和volatile

    C++中修饰数据可变的关键字有三个:const、volatile和mutable。const比较好理解,表示其修饰的内容不可改变(至少编译期不可改变),而volatile和mutable恰好相反,指示数据总是可变的。mutable和volatile均可以和...

    C++关键字大全 (2).docx

    在C++中,关键字是被语言保留并具有特殊含义的标识符,不能作为变量名或函数名使用。以下是一些C++的关键字及其用途: 1. `auto`: 自C++11引入,`auto`用于类型推断,它告诉编译器根据初始值自动推断变量的类型。...

    C++关键字大全 (2).pdf

    C++是一种强大的面向对象编程语言,它包含了丰富的关键字来支持其复杂的语法和功能。下面是对标题和描述中涉及的关键字的详细解释: 1. `asm`: 在早期版本的C++中,`asm`用于内联汇编,但现在已被`__asm`替代。尽管...

    C语言32以及C++63个关键字及其含义[定义].pdf

    C语言32个关键字及其含义和C++63个关键字及其含义 C语言32个关键字及其含义: 1. auto:自动变量用关键字auto作存储类别的声明。(可以省略,不写则隐含确定为“自动存储类别”) 2. break:不能用于循环语句和...

    浅谈C++中的mutable和volatile关键字

    总的来说,`mutable`和`volatile`都是C++中用于特定目的的关键字。`mutable`是为了在const上下文中修改对象的非关键状态,而`volatile`则确保了对可能由外部因素改变的变量的正确访问。理解并恰当使用这两个关键字...

    c++关键字解释

    以下是对给定文件中提及的C++关键字的详细解析: ### 1. asm `asm`关键字用于嵌入汇编代码到C++源代码中,允许开发者直接控制底层硬件,这对于优化某些性能关键部分或与硬件紧密交互的应用场景非常有用。 ### 2. ...

    深入解析C++中的mutable关键字

    在C++编程语言中,`mutable`关键字是一个特殊的关键字,它的主要作用是允许在const成员函数中修改对象的某些特定成员变量。这在某些情况下非常有用,因为const成员函数通常承诺不改变对象的状态,但有时我们需要在...

    VisualC++(VC++)编程序软件语言关键字大全集合参考.pdf

    在Visual C++(VC++)编程环境中,关键字是语言的核心组成部分,它们具有特殊的含义并用于指导编译器如何处理代码。下面将详细解释标题和描述中提到的一些关键字以及部分内容涵盖的关键字。 1. `__asm`: 在早期版本...

    C++基础关键字介绍.docx

    ### C++基础关键字详解 #### 一、引言 C++是一种广泛使用的面向对象的编程语言,它在软件开发、系统编程以及高性能计算等领域扮演着重要角色。掌握C++的关键字是学习这门语言的基础。本文将详细介绍C++中的一些...

    详解C++中mutable的用法

    - mutable是C++中的一个关键字,它的中文意思是“可变的”,可以被看作是const的反义词。 - 在C++中,被mutable修饰的成员变量,即使在一个const函数中也可以被修改。 - 它主要用于那些逻辑上不应被改变,但有时...

    深入理解C++中常见的关键字含义

    本文将深入探讨几个常见的C++关键字,分别是`inline`、`const`、`mutable`、`static`、`virtual`、`friend`以及`volatile`。 1. `inline`: 内联函数是在代码调用处展开的,可以减少函数调用带来的开销。但是,`...

    C++中mutable与volatile的深入理解

    C++中修饰数据可变的关键字有三个:const、volatile和mutable。const比较好理解,表示其修饰的内容不可改变(至少编译期不可改变),而volatile和mutable恰好相反,指示数据总是可变的。mutable和volatile均可以和...

Global site tag (gtag.js) - Google Analytics