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;/*预防这样的等式*/

也用于如下字符串指针的方式:
const char* getString();/*预防外部对string内容的修改*/

4、const限定类得成员函数
class ClassName
{
    ....
public:
    int getValue() const;
}
获得的能力:可以操作常理对象;
失去的能力:不能修改内的数据成员,不能在函数中调用其他不是const的函数。

5, tips: 类构造函数是不能定位为const
Class Myclass{
public:
Myclass() const;//error
。。。。。。
}

转载于:https://www.cnblogs.com/runner42/archive/2013/01/07/2848958.html

C++ const使用情况总结相关推荐

  1. 函数声明末尾的“ const”是什么意思? [重复]

    本文翻译自:What is meant with "const" at end of function declaration? [duplicate] This question ...

  2. ES6 - let、const与作用域

    一.let 1.1 学习let,首先我们来看一段代码: function test(){for(var i=0;i<3;i++){console.log(i) //1,2}console.log ...

  3. const 的学习(转载)

    const修饰指针和引用的用法,对于初学C++的人直是讳莫如深,不知所云.一旦你了解了其用法,一切便不值一哂了.下面我为读者一一释疑:    大致说来其可分为三种情况: const修饰指针,const ...

  4. 编译器在处理const变量跟一般变量时的区别

    const变量,也就是常量,当某个变量加上const属性的时候,表明这个变量不可修改. const变量是不可写的,那么我们对于const变量的处理只剩下读操作了. 当我们读一般的变量的时候,会先获取该 ...

  5. C / C++ const 的区别和使用

    C中的const,功能比较单一,较容易理解: 作用:被修饰的内容不可更改. 使用场合: 修饰变量,函数参数,返回值等.(c++中应用场合要丰富的多) 特点: 是运行时const,因此不能取代#defi ...

  6. C++ const 关键字使用

    2019独角兽企业重金招聘Python工程师标准>>> 为什么使用const?采用符号常量写出的代码更容易维护:指针常常是边读边移动,而不是边写边移动:许多函数参数是只读不写的.co ...

  7. c++学习之const成员变量与成员函数

    c++学习之const成员变量与成员函数 常类型是指用类型修饰符const说明的类型,常类型的变量或者对象的值是不能被更新的.因此,定义或说明常类型时必须初始化. 如果在一个类声明常数据成员,那么任何 ...

  8. const修饰指针和引用的用法【转贴】

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  9. TypeScript入门教程 之 const

    TypeScript入门教程 之 const const是ES6 / TypeScript提供的非常受欢迎的功能.它使您可以与变量保持不变.从文档以及运行时的角度来看,这都是很好的.要使用const只 ...

最新文章

  1. 第一章、FastDFS简介
  2. Python+Selenium练习篇之11-浏览器上前进和后退操作
  3. spring-注入list集合对象(值是对象)
  4. 5-4日 socket套接字
  5. 103_Power Pivot 透视表中空白标签处理及百分比
  6. ifconfig没有ip地址_没有宽带也可以实现全家上网
  7. jenkins 下载插件 一直失败_实用测试技能分享:jmeter+Jenkins性能测试自动化搭建...
  8. jquery exif + lazyload实现延迟加载并显示相片exif信息
  9. bpftrace 使用笔记
  10. 登陆界面万能密码绕过
  11. 2021网安保研之路-----中科院信工所
  12. antdesignpro 权限_ant design pro 权限管理
  13. 用html制作四行四列的表格,HTML表格元素
  14. wordpress pdf_9个适用于WordPress的最佳PDF插件
  15. 朴灵和阮一峰吵架的代码
  16. 风控决策引擎——决策流构建实战
  17. 百度地图之根据显示范围获取地图图片
  18. 什么是一个可执行文件?
  19. 超级计算机有关文献,超级计算机系统性能平衡性预先评价方法研究
  20. 物联网毕业设计 单片机火灾报警器设计与实现

热门文章

  1. 大数据_Flink_Java版_数据处理_流处理API_Flink中的UDF函数类---Flink工作笔记0036
  2. 大数据_Flink_数据处理_流式数据源测试---Flink工作笔记0010
  3. STM32工作笔记0056---认识DB9接口
  4. SpringCloud工作笔记089---SpringBoot中Mybatis使用Condition_Criteria如何筛选日期类型数据
  5. protocol学习笔记001---RPC和HTTP协议之间的区别_与各自优势
  6. APPCAN学习笔记006_创建第一个APPCAN应用
  7. ppt插入相对路径视频
  8. ubuntu登陆死循环(全是搜狗拼音的锅!!!!!!!!!!!)
  9. Linux进程间通信——使用消息队列
  10. linux下的C语言开发(多线程编程)