在一些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修饰符相关推荐

  1. [Reprint]C++函数前和函数后加const修饰符区别

    c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...

  2. const对象只能调用const成员函数、不能调用非const成员函数;非const对象可以调用const成员函数

    引发原因: 由调用成员函数时隐式传入的当前对象的this指针引起. 1. 非const成员函数中的隐式参数:classA* this 2. const成员函数中的隐式参数:const classA* ...

  3. java中的类修饰符、成员变量修饰符、方法修饰符。

    类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...

  4. 成员函数后面加上const的作用

    const表示成员函数不会修改类中的数据成员. 规则: 在类中被const 声明的函数只能访问const 函数,而非const 函数可以访问任意成员函数. 在成员函数中不管数据是否具有const 属性 ...

  5. 我对const修饰符应用的理解

    先说说我对编译器对const处理的理解:const修饰符定义一个常量,const变量在整个程序中只有一个拷贝.编译器会跟踪所有用到这个常量的地方,一旦发现任何一个操作可能会改变这个它是常量这个属性,那 ...

  6. const修饰符的用法总结

    一.const常量 在 C++ 中,有两种简单的定义常量的方式: 1.使用 #define 预处理器. #define LENGTH 10 #define WIDTH 5 #define NEWLIN ...

  7. 静态成员函数不能采用const修饰的原因

    静态成员函数不能用const修饰 ,也不能存取nonstatic数据 C++中静态成员函数不能用const修饰的原因: static在c++中的第五种含义:用static修饰不访问非静态数据成员的类成 ...

  8. scala 访问修饰符_Scala中的访问修饰符

    scala 访问修饰符 Access modifiers are used in order to restrict the usage of a member function to a class ...

  9. 关于类成员函数中访问同类对象的私有成员

    关于类成员函数中访问同类对象的私有成员,主要包含以下几种场景: a. 在C++的类的成员函数中,允许直接访问该类的对象的私有成员变量. b. 在类的成员函数中可以访问同类型实例的私有变量. c. 拷贝 ...

最新文章

  1. c语言输出n以内完数,c语言:输入n,输出不超过n的全部完全数。能帮忙找出怎么错么?...
  2. 陈松松:视频营销成交率低,这三个因素没到位
  3. 上传文本到hdfs上的一些命令
  4. 【JavaScript】js数组与字符串的相互转换
  5. SolrCloud 分布式集群安装部署(solr4.8.1 + zookeeper +tomcat)
  6. 怎么理解python语言_Python语言入门1-理解Python语言
  7. linux查看一小时之内的日志,linux – 在[timespan]内(例如最后一小时)查找日志文件中的条目...
  8. 【Python】输入任意个数元素并保存至列表
  9. Java 笔试题---Java与编程模式--7月6日
  10. 蓝桥杯 ALGO-80 算法训练 整数平均值
  11. 坐标轨迹计算_三坐标测量机控制系统功能介绍
  12. 使PNG图片在IE6下透明(非背景图片)
  13. 【CDAS峰会】吴喜之:数据科学的未来发展
  14. HBuilderX云打包提示cli版本和服务器的cli版本不一致
  15. 加ing形式的单词有哪些_动词ing形式变化规则有哪些
  16. Wannacry“永恒之蓝”勒索病毒最全防范措施
  17. Shim Polifill区别
  18. Vue前端开发文档(完善中)
  19. 计算机网络基本知识(四):网络传输介质
  20. Android 自定义相机Demo源码

热门文章

  1. hdu 1269(Tarjan求强连通分量)
  2. nyoj-Color the necklace(Ploya定理 + 欧拉函数 + 扩展欧几里得(求逆元))
  3. 去掉PE文件随机基址的方法
  4. C:输入数字计数(数组方法)
  5. mapReducer第一个例子WordCount
  6. Maven远程仓库:pom依赖以及jar包下载
  7. SQL之SELECT语句执行顺序及子句功能
  8. SQLServer—端口概念
  9. mongodb实现对某列求和SUM
  10. (转)性能分析之-- JAVA Thread Dump 分析综述