一.
常对象
常对象:在定义对象时加关键字const。
定义形式:
类名 const 对象名【(实参表)】
const 类名 对象名【(实参表)】
在定义常对象时必须同时初始化,且不能再改变。
(1).如果一个对象被声明为常对象,则通过该对象只能调用它的常成员函数,而不能调用该对象的普通成员函数。
(2).常成员函数可以访问常对象中的数据成员,但不允许修改常对象中数据成员的值。(若一定要修改常对象中某个数据成员的值,将其声明为mutable,e. mutable int count)
二.
常对象成员
可以将对象的成员声明为const,包括常数据成员和常成员函数。
1.常数据成员
作用与用法与一般常变量相似。只能通过构造函数的参数初始化表对常数据成员进行初始化,任何其他函数都不能对常数据成员赋值。(常对象的数据成员都是常数据成员)
2.常成员函数
一般的成员函数可以引用本类中的非const数据成员,也可以修改。
而常成员函数只能引用不能修改
。
声明常成员函数的一般格式为:
类型名 函数名(参数表)const
三.
常成员函数的用途
(1)在一个类中,可将不允许改变值的数据成员声明成const。可以用非const的成员函数引用这些数据成员的值。
(2)如果要求所有的数据成员的值都不许改变,则可以将所有数据成员声明为const,或将对象声明为const,然后用成员函数引用数据成员,起到双保险的作用。
(3)如果需要访问常对象中的数据成员,可将常对象中所有成员函数都声明为const成员函数,并确保在函数中不修改对象中的数据成员。
注:常对象中的成员函数并不全是常成员函数,常对象只保证其数据成员是常数据成员,其值不被修改。
常成员函数不能调用另一个非const成员函数。