C++——const加深理解之const在函数后
先看下面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在函数后相关推荐
- const的理解、const指针、指向const的指针
1.const 的理解 const 是C语言的一个关键字,需要注意的是,const 关键字是把变量变为一个只读的变量(也就是不可以作为左值),绝对不是将这个变量变为常量.也就是说经过const 修饰的 ...
- const指针和指向const的指针
今天在看项目代码时,发现竟然可以给有const修饰的指针赋值,按道理的话,const修饰的不是常量吗?常量应该是初始化之后就不能再修改才对.对于这个问题,我大致的研究了一下. 参考const 指针与指 ...
- const在函数前与函数后的区别 [转]
[转] http://blog.csdn.net/clozxy/article/details/5679887 一 const基础 如果const关键字不涉及到指针,我们很好理 ...
- 对于这个函数const int func(const int a) const声明中,三个const分别是什么意思?...
第一个const 函数的返回值类型是const. 这个const修饰没什么意义,你可以想象一下: 既然是函数的 返回值,而且是值传递的形式,是否const有什么意义.如果指针(引用)传递,怎表示返回值 ...
- const、static、const staic理解
Table of Contents 1 static的理解 2 const 新自定义类型 p; 则p不可变 3 不可重入函数 4 类的static成员变量 5 类的const成员变量 6 类的stat ...
- 深入理解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 ...
- C语言 const、volatile、const volatile限定符理解
在C语言经常会用到变量类型限定符const和volatile,但是const和 volatile也可以一起使用.下面就一次分析一下这三种情况的使用方法. 1.const 从字面意思理解,意思就 ...
- 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。
①函数指针 函数指针是指向函数的指针变量. 因而"函数指针"本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所 ...
- C++中const的理解
文章目录 const关键字概述 const的作用规律 常变量的默认作用域 const对象和对象的const成员 const修饰函数的参数和函数的返回值 常见的对const的错误理解 const关键字概 ...
最新文章
- flex java 全局拦截_flex + java 过滤敏感词
- PMP中关于配置管理系统和配置管理项
- python3函数可变输入参量
- 从放弃迅雷和IDM到自己开发下载工具
- python有框架吗_Python几种主流框架
- Python基础——PyCharm版本——第四章、基础语法-分支语句(条件判断if语句)
- python 的内存回收,及深浅Copy详解
- 大神程序员都懂英文翻译,而你却因英语不行遭拒?
- 修改图层的范围_PS教程连载第47课:PS图层操作案例星球
- java求字符串数组交集、并集和差集
- python出行轨迹记录_Python中的自动路径绘制,python,轨迹
- 删除Windows10系统远程桌面的连接记录
- docker中的localhost
- TortoiseSVN 如何去掉文件夹左下角的绿色对勾的方法
- iptables拦截域名_使用iptables封锁对某个域名的DNS查询
- 《乔布斯传》英文原著重点词汇笔记(六)【 chapter four 】
- System.Globalization.CultureInfo.InvariantCulture 解决不同地域字符串格式不同问题
- Inte E3-1230 V2技嘉B75-D3V GTX660成功安装黑苹果
- linux命令描述大小写,在Linux命令行内直接进行大小写转换
- 股票、指数、快照、逐笔... 不同行情数据源的实时关联分析应用
热门文章
- Docker创建一个镜像
- 套娃的开始——Network in Network网络学习笔记
- uni map 实时记录轨迹_北斗GPS汽车行车记录仪,部标808商用轿车专用
- 两款高大尚广告GO跳转页PHP源码
- 有效值和峰峰值的关系_4.数据预处理—缺失值处理(二)
- 四大基本反应类型的关系_死神:漫画已完结,却依旧没有填坑,尸魂界四大贵族都有谁?...
- ios退款 怎么定位到是哪个用户_哪个浏览器兼容性最好用?看看用户都是怎么评价的吧...
- 网址发布页模板,带网址测速+域名检测功能
- 在线涂鸦画板小程序源码
- 网上科学计算机,【图片】计算机-科普—都是从网上找的【计算机科学与技术吧】_百度贴吧...