博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常量成员函数
阅读量:2354 次
发布时间:2019-05-10

本文共 921 字,大约阅读时间需要 3 分钟。

先看这个例子

bool Sales_item::same_isbn(const Sales_item &rhs) const

{ return (isbn rhs.isbn);}

蓝色的const用于修饰显示传入的形参rhs,而对于类的成员则有隐式的,而外的this指针作为形参传入,而红色部分的const正是修饰这部分参数this

const 成员函数的引入

现在,可以理解跟在Sales_item 成员函数声明的形参表后面的const 所起的作用了: const改变了隐含的this 形参的类型。在调用total.same_isbn(trans) 时,隐含的this 形参将是一个指向total 对象的const Sales_item*类型的指针。就像如下编写same_isbn 的函数体一样:

  

/
 
/
 pseudo
-
code illustration of how the 
implicit
 
this
 pointer 
is
 used
/
 
/
 This code 
is
 illegal: We may not explicitly define the 
this
 pointer ourselves
/
 
/
 Note that 
this
 
is
 a pointer to 
const
 because same_isbn 
is
 a 
const
 member
bool
 Sales_item::same_isbn(
const
 Sales item 
*
const
 
this
 ,
const
 Sales_item 
&
rhs) 
const
return (this->isbn rhs.isbn);}

 

用这种方式使用const 的函数称为常量成员函数(const member function) 。由于this 是指向const 对象的指针,const 成员函数不能修改调用该函数的对象。因此,函数avg-price

和函数sarne isbn 只能读取而不能修改调用它们的对象的数据成员。

NOTE

const对象指向const的指针或引用只能用于调用其const成员函数如果尝试用它们来调用非const 成员函数,则是错误的。

转载地址:http://dvutb.baihongyu.com/

你可能感兴趣的文章
2017微信公开课PRO版在广州召开 张小龙首次全面解读小程序
查看>>
微信小程序催生新的创业机会 阿拉丁为首批乘风破浪者
查看>>
这里有海量的用户群 CSDN学院诚邀微信小程序技术课程优秀讲师
查看>>
测试用例设计方法例子
查看>>
交叉表 设计测试用例
查看>>
软件测试方法及测试用例的设计方法
查看>>
软件测试面试题集锦
查看>>
写给测试人员:不是所有的bug都需要修复
查看>>
云计算将改变传统软件软件测试行业
查看>>
敏捷测试用例设计
查看>>
校企合作意在解决招聘、就业两大人才问题
查看>>
我在阅读NodeJS文档中读出的19个套路
查看>>
CSS专家、阿里巴巴前端技术专家大漠:纵览布局演变史
查看>>
source insight代码格式化(Astyle)
查看>>
Makefile常用函数
查看>>
配置Linux异构网络下的ntp时间服务器
查看>>
SVN客户端和服务端安装 详解
查看>>
Android Studio 出现 error: cannot find symbol variable abc_ic_ab_back_mtrl_am_alpha
查看>>
Android AndroidManifest.xml 详解
查看>>
Eclipse修改Format不换行 详解
查看>>