C++const对象详解

在使用C++语言开发中,如果我们希望某一个对象在定义之后不被错误的修改,我们可以将这个对象声明为const对象,这样这个对象的数据成员就不可以被更改。

1.定义const对象

const类名 对象名;

类名const对象名;

1)定义类对象时可以将其指定为const对象。定义后const对象不能再被修改;

2)const对象不能调用非const类型的成员函数。

在非const成员函数内部,有可能会对对象的数据成员进行修改,比如setHour()修改了对象的Hour值。而const类型的成员函数是不会修改对象的数据成员的。

const数据成员

1.const数据成员

在类内部使用const关键字来声明const数据成员。const数据成员的值不能被修改。

const int m_nNum;//定义了一个const数据成员

初始化时比较特殊,只能通过初始化列表初始化。不能在构造函数里赋值。

2.初始化列表

构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。

初始化列表可以为数据成员初始化,不仅仅只是const数据成员。

我们在构造函数外面添加了初始化列表,这个列表里面为const成员m_nNum赋了初始值10,如果我们有多个构造函数,必须在每一个构造函数外面都对这个const成员添加初始化列表初始化,包括复制构造函数。


const成员函数

1.const成员函数只能被const对象引用;

2.const成员函数内可以引用const数据成员,也可以引用非const数据成员,但不能修改非const数据成员的值,也不能调用非const成员函数;

3.const成员函数在声明和定义的时候都必须加上const。


原文链接:http://www.maiziedu.com/wiki/cplus/const/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 13,149评论 1 51
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 7,983评论 0 3
  • 本文博客园地址:http://www.cnblogs.com/xiongxuanwen/p/4290086.htm...
    先之阅读 4,330评论 0 5
  • 在我的学校前面,有一条潺潺流动的河。这条河经过我们家乡,被宋家州大坝给拦了回去,成了现在这道美丽的潇湘平湖。 春天...
    小水灵阅读 3,434评论 2 3
  • 爱情在我的心里 划出一到了伤口 刻下伤悲 我用沉默的眼泪 和滴着热的血 在伤口 浇灌出一朵玫瑰 作为坚强的点缀
    汩月阅读 929评论 0 0