C++:常对象与常对象成员

  • Post author:
  • Post category:其他


一.

常对象

常对象:在定义对象时加关键字const。

定义形式:


类名 const 对象名【(实参表)】

const 类名 对象名【(实参表)】


在定义常对象时必须同时初始化,且不能再改变。

(1).如果一个对象被声明为常对象,则通过该对象只能调用它的常成员函数,而不能调用该对象的普通成员函数。

(2).常成员函数可以访问常对象中的数据成员,但不允许修改常对象中数据成员的值。(若一定要修改常对象中某个数据成员的值,将其声明为mutable,e. mutable int count)

二.

常对象成员

可以将对象的成员声明为const,包括常数据成员和常成员函数。

1.常数据成员

作用与用法与一般常变量相似。只能通过构造函数的参数初始化表对常数据成员进行初始化,任何其他函数都不能对常数据成员赋值。(常对象的数据成员都是常数据成员)

2.常成员函数

一般的成员函数可以引用本类中的非const数据成员,也可以修改。

而常成员函数只能引用不能修改



声明常成员函数的一般格式为:


类型名 函数名(参数表)const

三.

常成员函数的用途

(1)在一个类中,可将不允许改变值的数据成员声明成const。可以用非const的成员函数引用这些数据成员的值。

(2)如果要求所有的数据成员的值都不许改变,则可以将所有数据成员声明为const,或将对象声明为const,然后用成员函数引用数据成员,起到双保险的作用。

(3)如果需要访问常对象中的数据成员,可将常对象中所有成员函数都声明为const成员函数,并确保在函数中不修改对象中的数据成员。

注:常对象中的成员函数并不全是常成员函数,常对象只保证其数据成员是常数据成员,其值不被修改。

常成员函数不能调用另一个非const成员函数。

在这里插入图片描述



版权声明:本文为G1921140190原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。