const 成员函数

摘要:
以下规则适用于常量函数:常量对象只能访问常量成员函数,而非常量对象可以访问任何成员函数,包括常量成员函数;常量对象的成员是不可修改的,而常量对象通过指针维护的对象是可修改的;无论对象是否具有常量属性,常量成员函数都不能修改对象的数据。编译时,检查成员数据是否被修改;具有可变修饰符的数据成员可以在任何情况下通过任何方式进行修改。当然,此时可以修改const成员函数。

任何不会修改数据成员的函数都应该声明为const类型。
关于const函数,有以下几点规则:

  1. const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数;
  2. const对象的成员是不可修改的,而const对象通过指针维护的对象却是可以修改的;
  3. const成员函数不可以修改对象的数据,不管对象是否具有const性质。它在编译时,以是否修改成员数据为依据,进行检查;
  4. 加上mutable修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的const成员函数是可以修改它的。

免责声明:文章转载自《const 成员函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇openstack 后期维护(四)--- 删除僵尸卷git提交代码到码云详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js数组中的每一项异步请求

数组中的每一个选项,都进行一次异步请求,然后所有请求完成再操作返回值,Promise.all     getInfo = (param) => {         const { getData } = this.props // getData为接口请求         return new Promise(resolve => {    ...

Android深入浅出之 AudioTrack分析

Android深入浅出之Audio 第一部分 AudioTrack分析 一 目的 本文的目的是通过从Audio系统来分析Android的代码,包括Android自定义的那套机制和一些常见类的使用,比如Thread,MemoryBase等。 分析的流程是: l         先从API层对应的某个类开始,用户层先要有一个简单的使用流程。 l        ...

Chromium base 基础库概览

Chromium 基础库概览 Chromium 基础库包括的内容十分繁杂,我把其中的主要部分大致分为以下几类: 1. 容器类型Chromium 的代码主要使用 STL 容器类型,比如 std::vector,std::list,另外 GCC 和 MSVC 提供的 STL 扩展容器类型 hash_map 和 hash_set 也在 Chromium 中使用...

Qt Meta Object System-元对象系统

研一的时候开始使用Qt,感觉用Qt开发图形界面比MFC的一套框架来方便的多。后来由于项目的需要,也没有再接触Qt了。现在要重新拾起来,于是要从基础学起。 Now,开始学习Qt事件处理机制。 元对象系统的构成 QObject为所有需要利用元对象系统的对象提供一个基类。 Q_OBJECT宏,在类的声明体内激活meta-object功能,比如动态属性、信号和槽...

c++之标准库iomanip

C++ 标准库之iomanip istream & istream::get(char *, int, char = ‘ ’); istream & istream::getline(char *, int, char = ‘ ’); 作用: 从文本中提取指定个数的字符串, 并在串数组末尾添加一个空字符. 区别: get() 不从流中提取终...

在MFC中使dialog自适应缩放

起因 最近用mfc做了不少小软件,界面上都是基于CDialog或者CFormView,界面不能缩放一直是问题。一个办法是在OnSize()里面调用所有控件的MoveWindow()函数,根据比例调整控件大小。但是在界面上控件比较多的时候,这个发放就显得很繁琐了。于是我写了一个CAutoResize类,去实现控件的统一缩放。 工作原理 原理上很简单,对于MF...