C++ Primer Plus书之--C++ mutable和const

本文探讨了C++中mutable和const关键字的用法及特性。mutable允许在const对象中修改特定成员,而const用于声明不可变的变量,且影响全局变量的链接性。文章通过实例说明了这两种关键字如何在实际编程中应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mutable

mutable指出即使结构或类变量为const, 其某个成员也可以被修改, 例如:

struct data
{
    char name[30];
    mutable int accesses;
};

const data veep = {"Tom", 100};
// 不允许的
strcpy(veep.name, "Joye");
// mutable修饰的变量可以被修改
veep.accesses++;

 

const

const修饰的变量是常量,  也就是不能被修改.
但C++中const限定符对默认存储类型稍有影响, 
在默认情况下全局变量的链接性为外部的, 但const修饰的全局变量的链接性为内部的, 也就是说C++看来, 全局const定义就下使用了static说明符一样, 例如:

const int fingers = 10;
static const int fingers2 = 10;
int main()
{
    ...
}


这里的fingers和fingers2的作用域都是本文件可见, fingers不再是外部可见了.

如果处于某种原因想让const修饰的常量的链接性为外部的, 则可以使用extern关键字来覆盖默认的内部链接性

extern const int states = 50;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值