C++中函数后面加const
C++中函数后面加const
在函数后加const的意义:
我们定义的类的成员函数 中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。 const成员函数和const对象 实际上,const成员函数还有另外一项作用,即常量对象相关。对于内置的数据类型,我们可以定义它们的常量,用户自定义的类也一样,可以定义它们的常量对象。
1、非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误)
2、表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,
任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);
3、唯一的例外是对于mutable修饰的成员。
加了const的成员函数可以被非const对象和const对象调用
但不加const的成员函数只能被非const对象调用
char getData() const{
return this->letter;
}
c++ 函数前面和后面 使用const 的作用:
前面使用const 表示返回值为const
后面加 const表示函数不可以修改class的成员
C++中函数后面加const相关推荐
- 在函数后面加const
概述: 函数名后加const使类成员函数不能修改类内成员! mutable可以突破const限制! 相信大家都见过在函数前面加const的情况,即修饰函数的返回值! 那么在函数后面加const,比如下 ...
- [Reprint]C++函数前和函数后加const修饰符区别
c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...
- python内函数名加括号和不加括号的区别,python中 函数名加括号与不加括号
Maven之自定义archetype生成项目骨架(一) Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论 ...
- php中函数前加符号的作用分解
php变量前面加&符号是什么意思就不用多说了,大家都在用,就是两个变量同时指向一个地址而已,那么,php函数前面加&符号的意义又是什么呢?下面先上两个演示代码,然后再做解释. func ...
- C++之函数后面加const
一.const起到什么作用 const声明该函数为只读函数,不会修改任何数据成员. 1.可提高程序的可读性. 2.提高程序的健壮性. 二.使用示例 #include <iostream> ...
- js 中 函数内部加 return false 的作用
有两个作用,禁止向上冒泡和禁止默认行为. 请先看以下代码: <div id="box"><div id="txt">123</di ...
- C++: C++函数声明的时候后面加const
C++: C++函数声明的时候后面加const 转自:http://blog.csdn.net/zhangss415/article/details/7998123 非静态成员函数后面加const(加 ...
- java中const_Java如何实现const
展开全部 const是constant的缩写,"恒定不变"的意思.被const修饰的东西都受到强制保护,可以预防意外的变动,能提62616964757a686964616fe59b ...
- c++中Const,Const函数,Const变量,函数后面的Const
看到const 关键字,C++程序员首先想到的可能是const 常量.这可不是良好的条件反射.如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮.const 更大的魅力是它可以修饰函数的 ...
- 在C++中,函数名前的const和函数名后的const的区别
首先要知道函数名后面加const只能用于成员函数. int const func(); //合法,相当于const int func(); int func2() const; //非法,对函数的co ...
最新文章
- python linux arm_[Python]python for ARM/LINUX
- 石墨变为石墨烯的方法
- vCloud Automation Center (vCAC) 6.0 (一)
- Cell子刊:MRI有助于揭示睡眠之谜
- mysql双机热备份的实现步骤
- java自定义异常报错
- [css] 你有用过哪些css框架?说说它们的特点
- linux服务器搭建_Linux下搭建FTP服务器笔记
- java读写mysql数据库_Java读写MySQL数据库小实例
- java中修改对象类的数据_Java中创建对象的六个步骤 细分后(new关键字)对象头详细介绍...
- Linux系统调用怎么和内核或底层驱动交互的 inode struct file
- java 加密使长度变短
- 神经网络pid控制原理框图,神经网络pid控制原理图
- 互联网面试六大常见问题及应对技巧,2021不再入坑!
- redis实现分布式锁的几种方式
- mongodb连接不上的问题Exception thrown during connection pool background maintenance task
- jupyter notebook的安装与启动
- g711u g711a 格式相互转换
- 易语言源码 VX多开 思路+源码
- SpringCloud—笔记(三)高级篇
热门文章
- Opencv 学习笔记(二)
- 八戒,别以为你站在路灯下就是夜明猪了
- thinkPHP集成workman扩展
- Android扫一扫 有仿微信版
- staring mysql.the_mysql 启动异常失败 Starting MySQL..The server quit without updating PID file
- COIL:结合稠密检索和词汇匹配的更高效检索模型
- php实现智能音箱播放内容,智能音箱应用分析 智能音箱五大功能介绍
- Windows 下部署 Seafile 服务器
- BT-3の蓝牙技术原理のBT协议の蓝牙核心协议の链路管理协议(LMP)
- 离散数学 (上)小结