常量对象与常量成员函数

常量对象与常量成员函数

常量对象与常量成员函数来防止修改对象,实现最低权限原则。

可以用关键字const来指定对象是不可修改的,任何修改该对象的企图,都会导致编译错误。

例如:const Time noon(12,0,0);    声明一个Time 类的常量对象noon,并将它初始化为中午12点。

C++不允许在常量对象上调用成员函数,除非成员函数本身也被声明为常量。甚至对不会修改对象的成员函数,也是如此,此外,编译器不允许声明常量的成员函数修改对象。

对一般情况下,通常修改对象的构造函数和析构函数而言,它们不允许被声明成const

关于常量对象和常量成员函数的使用方法如下:

(1)非常量对象调用非常量成员函数         (正确)

(2)非常量对象调用常量成员函数           (正确)

(3)常量对象调用常量成员函数             (正确)

(4)常量对象调用非常量成员函数           (错误)

尽管构造函数必须是非常量成员函数,但它仍然可用于初始化常量对象。

常量对象的“常量性”是在构造函数完成了对象的初始化之后生效的,持续到调用了对象的析构函数。

成员函数没有修改对象的事实,并不足以表明它就是常量函数,常量函数必须显式地用const声明。

常量成员函数的初始化必须用初始化列表。

例如:Increment::Increment(int c,int i) : count(c),increment(i);{}

初始化列表出现在构造函数的参数表 和 表示构造函数函数体开始的左大括号之间。成员初始化列表用冒号和参数表隔开。

量数据成员(常量对象和常量变量)以及被声明为引用的数据成员,都必须用成员初始化列表初始化,在构造函数中对这些类型的数据赋值是不允许的。

 

参考资料:《c++程序员教程》 电子工业出版社 张良华等译   P273-P280

转自:http://blog.csdn.net/feitianxuxue/article/details/7311055

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值