加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

面试前必须要知道的C++ const用法

发布时间:2020-03-11 17:21:52 所属栏目:资源 来源:博客园
导读:本文主要介绍const修饰符在C++中的主要用法,下面会从两个方面进行介绍:类定义中使用const、非类定义中使用const 1. 非类定义中使用const 非类定义中使用const是指:在除了类定义以外的场景中使用const。 1.1 变量 顶层const:变量本身是个常量 底层const
  本文主要介绍const修饰符在C++中的主要用法,下面会从两个方面进行介绍:类定义中使用const、非类定义中使用const  1. 非类定义中使用const  非类定义中使用const是指:在除了类定义以外的场景中使用const。  1.1 变量  顶层const:变量本身是个常量  底层const:变量所指向的对象是个常量  用于声明引用的const都是底层const  1.2 函数  Tips:  引用只是一个变量的别名,不是对象,因此引用不会占用存储空间  调用一个返回引用的函数得到左值,其他返回类型得到右值  2. 类定义中使用const  2.1 类成员  类定义中不能进行初始化,因为在头文件中定义只是一个声明,并没有分配真正空间,因此变量是不存在的,因此是不能赋值的。  在类定义外部,const定义的变量是不能被赋值  问题:  类定义中不能赋值,类定义外部也不能赋值,但是又必须赋值,这可如何是好?  解决方案:  在构造函数后的参数初始化列表中初始化  将const变量同时声明为 static 类型进行初始化  2.2 类成员函数  Tips:  成员函数都有一个额外的隐式参数this,this的值是调用该函数的对象地址,因此this是一个指针。  普通成员函数的this指针类型是:Test* const this  const成员函数的this指针类型是:const Test* const this  因为两个函数的this指针类型不同,所以display有两个重载函数。  作用:  为了在函数体内禁止修改对象,可以通过定义const成员函数来实现。  Others:  下图是截自C++ primer中的片段,请重点关注两个display函数的返回值:  display 普通成员函数的返回值是:普通引用  display const成员函数的返回值是:常量引用  造成返回值不同的原因就是:this指针类型不同  返回*this面试前必须要知道的C++ const用法

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读