(原創) 何谓const member function? (C/C++)

const member function是C++独有的,(C语言、C#皆没有,但Java不确定),事实上,C++是一个非常重视const的语言,很多地方都可见到const的踪迹。

const member function的目的在宣告此function不能更动任何data member的资料,若在const member function更动了data member的资料,compile会error。

为什么需要const member function这个机制?在Interfaced Oriented Design的概念中,Interface和Class Implementation是分开的,Interface由Architect所制定,然后由Developer去implement Class,若Architect确定某个member function『一定』不会去变动data member上的数据,为了避免Developer不小心在member function改了data member的数据,造成日后debug困难,即可宣告该member function为const member function,如此compiler将协助我们注意该member function是否不小心改了data member上的资料,这是C++ compiler非常贴心之处。

另外,const member function的语法比较奇怪,这个modifier竟然修饰在function的后方

1 None.gif bool  same_isbn( const  Sales_item  & rhs)  const ;


我曾在课堂上问过老师,为什么const是在后面,似乎不像C like language的语法,老师的回答是,因为若写成const bool same_isbm()或bool const same_isbm(),似乎代表return值为const,因为没有其它地方可以放,只好将const放在function后面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值