3.10——常类型

常类型的引入,就是为了既保证数据共享又防止数据被改动。常类型是指使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改动的。

常引用

如果在说明引用时用const修饰,则被说明的引用为常引用。如果用常引用作为形参,便不会产生对实参的不希望的更改。

没有加常引用的时候,我们可以通过引用来修改 a的值

如果我们要修改a的值只能通过a来修改

我们常引用的左右九十,防止使用我们的引用名来修改数据,使用了常引用,我们就不可以通过引用名来修改数据。

常对象

如果在说明对象时用const修饰,则被说明的对象为常对象。常对象的数据成员值在对象的整个生存期内不能被改变。

如果我们把p1声明为常对象,我们就不能访问了。

 

说明:

在定义常对象时必须进行初始化,而且不能被更新。

C++不允许直接或间接地更改常对象的数据成员。

C++不允许常对象调用普通的成员函数。

常对象成员

常数据成员 

类的数据成员可以是常量或常引用,使用const说明的数据成员称为常数据成员。如果在一个类中说明了常数据成员,那么构造函数就只能通过成员初始化列表对该数据成员进行初始化,而其他任何函数都不能对该成员赋值。

 

当常数据成员和普通数据成员同时存在的时候,我们也只能用成员数据初始化列表来初始化,我们的普通数据成员也可以采用数据初始化列表初始化。

常成员函数

在类中使用关键字const说明的成员函数为常成员函数,常成员函数的说明格式如下:

返回值类型 函数名(参数表) const;

const是函数类型的一个组成部分,因此在声明函数和定义函数时都要采用关键字const。在调用时不必加const。

说明:

1)常成员函数可以访问常数据成员,也可以访问普通数据成员。常数据成员可以被常成员函数访问,也可以被普通成员函数访问。具体见:

2)如果将一个对象说明为常对象,则通过该对象只能调用它的常成员函数,而不能调用普通的成员函数。常成员函数是常对象惟一的对外接口,这是C++从语法体制上对常对象的保护。

3)常成员函数不能更新对象的数据成员,也不能调用该类中普通成员函数,这就保证了在常成员函数中绝不会更新数据成员的值。

 

错误写法,常成员函数不能更新对象的数据成员。

总结:我们定义的常引用可以防止,利用用于将我们的变量修改了;定义的常对象是在读型的,只能通过常成员函数读取,常成员函数与普通成员函数最大的区别就是,它可以读取常对象。 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值