C++ const对象



const对象


如果我们希望某一个对象在定义之后不被错误的修改,我们可以将这个对象声明为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成员添加初始化列表初始化,包括复制构造函数。


const1.png



const成员函数


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


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


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



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127
有一位课程导师想与你聊聊

免费电话咨询