C++成员函数中的const修饰符
在一些C++源码中经常见到const修饰的函数,这里的const与放的位置无关,也就是下面三种写法是等效的,只不过通常使用第一种写法,可以编写函数进行测试,这里的const虽然写在了函数的位置,其实是用来修饰隐藏的this指针,因为此时this指针是指向的是对象,也就是说this指向的对象不能被修改
void OpVar(int a, int b) const //1
void const OpVar(int a, int b) //2
const void OpVar(int a, int b) //3
// const写在什么位置没有关系
// const修饰的是谁?
// const修饰的不是形参
// const修饰的是this指针指向的内存空间,修饰的内存指针,因为有两个const
void OpVar(int a, int b) const // void OpVar(const Test *const this, int a, int b) const
{// a = 100; // 正常// this->a = 100; //报错 this 指针指向的内容是不可以更改的
}
C++成员函数中的const修饰符相关推荐
- [Reprint]C++函数前和函数后加const修饰符区别
c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...
- const对象只能调用const成员函数、不能调用非const成员函数;非const对象可以调用const成员函数
引发原因: 由调用成员函数时隐式传入的当前对象的this指针引起. 1. 非const成员函数中的隐式参数:classA* this 2. const成员函数中的隐式参数:const classA* ...
- java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- 成员函数后面加上const的作用
const表示成员函数不会修改类中的数据成员. 规则: 在类中被const 声明的函数只能访问const 函数,而非const 函数可以访问任意成员函数. 在成员函数中不管数据是否具有const 属性 ...
- 我对const修饰符应用的理解
先说说我对编译器对const处理的理解:const修饰符定义一个常量,const变量在整个程序中只有一个拷贝.编译器会跟踪所有用到这个常量的地方,一旦发现任何一个操作可能会改变这个它是常量这个属性,那 ...
- const修饰符的用法总结
一.const常量 在 C++ 中,有两种简单的定义常量的方式: 1.使用 #define 预处理器. #define LENGTH 10 #define WIDTH 5 #define NEWLIN ...
- 静态成员函数不能采用const修饰的原因
静态成员函数不能用const修饰 ,也不能存取nonstatic数据 C++中静态成员函数不能用const修饰的原因: static在c++中的第五种含义:用static修饰不访问非静态数据成员的类成 ...
- scala 访问修饰符_Scala中的访问修饰符
scala 访问修饰符 Access modifiers are used in order to restrict the usage of a member function to a class ...
- 关于类成员函数中访问同类对象的私有成员
关于类成员函数中访问同类对象的私有成员,主要包含以下几种场景: a. 在C++的类的成员函数中,允许直接访问该类的对象的私有成员变量. b. 在类的成员函数中可以访问同类型实例的私有变量. c. 拷贝 ...
最新文章
- c语言输出n以内完数,c语言:输入n,输出不超过n的全部完全数。能帮忙找出怎么错么?...
- 陈松松:视频营销成交率低,这三个因素没到位
- 上传文本到hdfs上的一些命令
- 【JavaScript】js数组与字符串的相互转换
- SolrCloud 分布式集群安装部署(solr4.8.1 + zookeeper +tomcat)
- 怎么理解python语言_Python语言入门1-理解Python语言
- linux查看一小时之内的日志,linux – 在[timespan]内(例如最后一小时)查找日志文件中的条目...
- 【Python】输入任意个数元素并保存至列表
- Java 笔试题---Java与编程模式--7月6日
- 蓝桥杯 ALGO-80 算法训练 整数平均值
- 坐标轨迹计算_三坐标测量机控制系统功能介绍
- 使PNG图片在IE6下透明(非背景图片)
- 【CDAS峰会】吴喜之:数据科学的未来发展
- HBuilderX云打包提示cli版本和服务器的cli版本不一致
- 加ing形式的单词有哪些_动词ing形式变化规则有哪些
- Wannacry“永恒之蓝”勒索病毒最全防范措施
- Shim Polifill区别
- Vue前端开发文档(完善中)
- 计算机网络基本知识(四):网络传输介质
- Android 自定义相机Demo源码