C++ const使用情况总结
1、const 用户指针的两种情况
1) 指针*符号在const右:
char const *szValue = "V1R2B120";
const char *szValue = "V1R2B120";
可以修改指针szValue,不能修改指针内容*szValue;
2) 指针*符号在const左:
char* const szValue = szInput;
不能修改指针szValue,可以修改指针内容*szValue;
2、const限定函数的传递值参数
void FunStr(const char* szInput);
在函数Fun中,不能修改szInput这个指针的内容;
void FunInt(const int iInput);
在函数FunInt这个函数中,iInput是传入的参数,获得传入值后,就不能更改;
这个限定,只能限定函数内部,不能限定函数使用者。
3、const限定函数的返回值
const MyClass FunClass();
函数FunClass返回的对象,只能调用类MyClass中的const成员变量和函数;
const限定返回值常用于双操作符的函数,如
const operator *(const MyClass* Value1, const MyClass* Value2)
{
return new MyClass(Value1->x*Value2->x);
}
防止:
MyClass a, b, c;
(a*b) = c;/*预防这样的等式*/
4、const限定类得成员函数
class ClassName
{
....
public:
int getValue() const;
}
获得的能力:可以操作常理对象;
失去的能力:不能修改内的数据成员,不能在函数中调用其他不是const的函数。
转载于:https://www.cnblogs.com/runner42/archive/2013/01/07/2848958.html
C++ const使用情况总结相关推荐
- 函数声明末尾的“ const”是什么意思? [重复]
本文翻译自:What is meant with "const" at end of function declaration? [duplicate] This question ...
- ES6 - let、const与作用域
一.let 1.1 学习let,首先我们来看一段代码: function test(){for(var i=0;i<3;i++){console.log(i) //1,2}console.log ...
- const 的学习(转载)
const修饰指针和引用的用法,对于初学C++的人直是讳莫如深,不知所云.一旦你了解了其用法,一切便不值一哂了.下面我为读者一一释疑: 大致说来其可分为三种情况: const修饰指针,const ...
- 编译器在处理const变量跟一般变量时的区别
const变量,也就是常量,当某个变量加上const属性的时候,表明这个变量不可修改. const变量是不可写的,那么我们对于const变量的处理只剩下读操作了. 当我们读一般的变量的时候,会先获取该 ...
- C / C++ const 的区别和使用
C中的const,功能比较单一,较容易理解: 作用:被修饰的内容不可更改. 使用场合: 修饰变量,函数参数,返回值等.(c++中应用场合要丰富的多) 特点: 是运行时const,因此不能取代#defi ...
- C++ const 关键字使用
2019独角兽企业重金招聘Python工程师标准>>> 为什么使用const?采用符号常量写出的代码更容易维护:指针常常是边读边移动,而不是边写边移动:许多函数参数是只读不写的.co ...
- c++学习之const成员变量与成员函数
c++学习之const成员变量与成员函数 常类型是指用类型修饰符const说明的类型,常类型的变量或者对象的值是不能被更新的.因此,定义或说明常类型时必须初始化. 如果在一个类声明常数据成员,那么任何 ...
- const修饰指针和引用的用法【转贴】
*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...
- TypeScript入门教程 之 const
TypeScript入门教程 之 const const是ES6 / TypeScript提供的非常受欢迎的功能.它使您可以与变量保持不变.从文档以及运行时的角度来看,这都是很好的.要使用const只 ...
最新文章
- 第一章、FastDFS简介
- Python+Selenium练习篇之11-浏览器上前进和后退操作
- spring-注入list集合对象(值是对象)
- 5-4日 socket套接字
- 103_Power Pivot 透视表中空白标签处理及百分比
- ifconfig没有ip地址_没有宽带也可以实现全家上网
- jenkins 下载插件 一直失败_实用测试技能分享:jmeter+Jenkins性能测试自动化搭建...
- jquery exif + lazyload实现延迟加载并显示相片exif信息
- bpftrace 使用笔记
- 登陆界面万能密码绕过
- 2021网安保研之路-----中科院信工所
- antdesignpro 权限_ant design pro 权限管理
- 用html制作四行四列的表格,HTML表格元素
- wordpress pdf_9个适用于WordPress的最佳PDF插件
- 朴灵和阮一峰吵架的代码
- 风控决策引擎——决策流构建实战
- 百度地图之根据显示范围获取地图图片
- 什么是一个可执行文件?
- 超级计算机有关文献,超级计算机系统性能平衡性预先评价方法研究
- 物联网毕业设计 单片机火灾报警器设计与实现
热门文章
- 大数据_Flink_Java版_数据处理_流处理API_Flink中的UDF函数类---Flink工作笔记0036
- 大数据_Flink_数据处理_流式数据源测试---Flink工作笔记0010
- STM32工作笔记0056---认识DB9接口
- SpringCloud工作笔记089---SpringBoot中Mybatis使用Condition_Criteria如何筛选日期类型数据
- protocol学习笔记001---RPC和HTTP协议之间的区别_与各自优势
- APPCAN学习笔记006_创建第一个APPCAN应用
- ppt插入相对路径视频
- ubuntu登陆死循环(全是搜狗拼音的锅!!!!!!!!!!!)
- Linux进程间通信——使用消息队列
- linux下的C语言开发(多线程编程)