从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章将为大家详细讲解有关C++中volatile和mutable的区别有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
10年积累的成都网站制作、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有怀化免费网站建设让你可以放心的选择与我们合作。C++中修饰数据可变的关键字有三个:const
、volatile
和mutable
。const
比较好理解,表示其修饰的内容不可改变(至少编译期不可改变),而volatile
和mutable
恰好相反,指示数据总是可变的。mutable
和volatile
均可以和const
搭配使用,但两者在使用上有比较大差别。
mutable
mutable
只能作用在类成员上,指示其数据总是可变的。不能和const
同时修饰一个成员,但能配合使用:const修饰的方法中,mutable修饰的成员数据可以发生改变,除此之外不应该对类/对象带来副作用。
考虑一个mutable
的使用场景:呼叫系统中存有司机(Driver)的信息,为了保护司机的隐私,司机对外展现的联系号码每隔五分钟从空闲号码池更新一次。根据需求,Driver类的实现如下伪代码:
class Driver { private: ... // real phone number string phone; // display phone number mutable string displayPhone; public: string getDisplayPhone() const { if (needUpdate()) { lock.lock(); if (needUpdate()) { updateDisplayPhone(); // displayPhone在这里被改变 } lock.unlock(); } return displayPhone; } };
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图