先看下面4种情况,应该是理解const的基础,我觉得必须掌握且容易掌握

  int   b   =   500;   const   int*   a   =   &b;              [1]   int   const   *a   =   &b;              [2]   int*   const   a   =   &b;              [3]   const   int*   const   a   =   &b;      [4]    

如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的 右侧,const就是修饰指针本身,即指针本身是常量。因此,[1]和[2]的情况相同,都是指针所指向的内容为常量,这种情况下不允许对内容进行更改操 作,如不能*a = 3 ;[3]为指针本身是常量,而指针所指向的内容不是常量,这种情况下不能对指针本身进行更改操作,如a++是错误的;[4]为指针本身和指向的内容均为常 量。

那如果const是跟在函数后面呢,来看一下下面这段程序

double Volume() const{return m_Length*m_Width*m_Height;
}
bool Compare(const CBox &xBox) const{return this->Volume() > xBox.Volume();
}

const跟在Compare(const CBox &xBox)后面这么做是为了防止你在函数中对不应该在这里改变的量(也就是Volume)不小心进行了改变。这样的函数叫常成员函数。常成员函数可以理解为是一个“只读”函数,它既不能更改数据成员的值,也不能调用那些能引起数据成员值变化的成员函数,只能调用const成员函数,所以这里的Volume()函数 也必须是常成员函数。

C++——const加深理解之const在函数后相关推荐

  1. const的理解、const指针、指向const的指针

    1.const 的理解 const 是C语言的一个关键字,需要注意的是,const 关键字是把变量变为一个只读的变量(也就是不可以作为左值),绝对不是将这个变量变为常量.也就是说经过const 修饰的 ...

  2. const指针和指向const的指针

    今天在看项目代码时,发现竟然可以给有const修饰的指针赋值,按道理的话,const修饰的不是常量吗?常量应该是初始化之后就不能再修改才对.对于这个问题,我大致的研究了一下. 参考const 指针与指 ...

  3. const在函数前与函数后的区别 [转]

    [转] http://blog.csdn.net/clozxy/article/details/5679887 一   const基础           如果const关键字不涉及到指针,我们很好理 ...

  4. 对于这个函数const int func(const int a) const声明中,三个const分别是什么意思?...

    第一个const 函数的返回值类型是const. 这个const修饰没什么意义,你可以想象一下: 既然是函数的 返回值,而且是值传递的形式,是否const有什么意义.如果指针(引用)传递,怎表示返回值 ...

  5. const、static、const staic理解

    Table of Contents 1 static的理解 2 const 新自定义类型 p; 则p不可变 3 不可重入函数 4 类的static成员变量 5 类的const成员变量 6 类的stat ...

  6. 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const

    原文网址:http://www.cnblogs.com/rushuizhijing/archive/2011/08/26/2154737.html 深入理解const char*p,char cons ...

  7. C语言 const、volatile、const volatile限定符理解

      在C语言经常会用到变量类型限定符const和volatile,但是const和 volatile也可以一起使用.下面就一次分析一下这三种情况的使用方法. 1.const   从字面意思理解,意思就 ...

  8. 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。

    ①函数指针 函数指针是指向函数的指针变量. 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所 ...

  9. C++中const的理解

    文章目录 const关键字概述 const的作用规律 常变量的默认作用域 const对象和对象的const成员 const修饰函数的参数和函数的返回值 常见的对const的错误理解 const关键字概 ...

最新文章

  1. flex java 全局拦截_flex + java 过滤敏感词
  2. PMP中关于配置管理系统和配置管理项
  3. python3函数可变输入参量
  4. 从放弃迅雷和IDM到自己开发下载工具
  5. python有框架吗_Python几种主流框架
  6. Python基础——PyCharm版本——第四章、基础语法-分支语句(条件判断if语句)
  7. python 的内存回收,及深浅Copy详解
  8. 大神程序员都懂英文翻译,而你却因英语不行遭拒?
  9. 修改图层的范围_PS教程连载第47课:PS图层操作案例星球
  10. java求字符串数组交集、并集和差集
  11. python出行轨迹记录_Python中的自动路径绘制,python,轨迹
  12. 删除Windows10系统远程桌面的连接记录
  13. docker中的localhost
  14. TortoiseSVN 如何去掉文件夹左下角的绿色对勾的方法
  15. iptables拦截域名_使用iptables封锁对某个域名的DNS查询
  16. 《乔布斯传》英文原著重点词汇笔记(六)【 chapter four 】
  17. System.Globalization.CultureInfo.InvariantCulture 解决不同地域字符串格式不同问题
  18. Inte E3-1230 V2技嘉B75-D3V GTX660成功安装黑苹果
  19. linux命令描述大小写,在Linux命令行内直接进行大小写转换
  20. 股票、指数、快照、逐笔... 不同行情数据源的实时关联分析应用

热门文章

  1. Docker创建一个镜像
  2. 套娃的开始——Network in Network网络学习笔记
  3. uni map 实时记录轨迹_北斗GPS汽车行车记录仪,部标808商用轿车专用
  4. 两款高大尚广告GO跳转页PHP源码
  5. 有效值和峰峰值的关系_4.数据预处理—缺失值处理(二)
  6. 四大基本反应类型的关系_死神:漫画已完结,却依旧没有填坑,尸魂界四大贵族都有谁?...
  7. ios退款 怎么定位到是哪个用户_哪个浏览器兼容性最好用?看看用户都是怎么评价的吧...
  8. 网址发布页模板,带网址测速+域名检测功能
  9. 在线涂鸦画板小程序源码
  10. 网上科学计算机,【图片】计算机-科普—都是从网上找的【计算机科学与技术吧】_百度贴吧...