C++ 关键字

本文详细介绍了C++中的三个关键字:volatile、explicit和mutable的作用及使用场景。volatile用于通知编译器对象值可能在未被监测的情况下发生变化;explicit用于防止隐式类型转换;mutable允许在const成员函数中修改数据成员。

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

1.volatile

        volatile 修饰符的主要目的是提示编译器 该对象的值可能在编译器未监测到的情况下被
改变 因此编译器不能武断地对引用这些对象的代码作优化处理。

       将成员函数声明为volatile volatile限定修饰符在 3.13 节介绍 如果一个类对象的值可能被修改的方式是编译器无法控制或检测的。例如 如果它是表示 I/O端口的数据结构则把它声明为 volatile 与 const 类对象类似 对于一个 volatile类对象 只有 volatile 成员函数 构造函数和析构函数可以被调用 
class Screen {
public:
 char poll() volatile;

  //..........
};
char Screen::poll() volatile { ... }

2.explicit

防止隐式类型转换

3.mutable

mutable 修饰的数据成员永远不会是const 成员,即使它是一个const对象的数据成员。mutable成员总可以被更新,即使是在一个const成员函数中。

class Screen {
public:
 // 成员函数
private:
 string _screen;
 mutable string::size_type _cursor; // mutable 成员
 short _height;
 short _width;
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值