【C++】类与对象--收尾章-----类的组合,常类型

春天已至,万物复苏,所见之处,生机勃勃。学习工作再忙,也别忘记自己的心灵生活呀~出去感受微风拂过脸颊,欣赏大自然的画作。关心一下好友近来的状况,时常给家里来个电话!我们的生活是五颜六色的噢!


前言

在上一章,我们学习了静态成员与友元,需要的小伙伴可以去主页查看,觉得博主写的还可以,就点个赞,收藏起来吧~~虽然不给钱,但博主看到自己的文章被大家认可也超开心~有相关的问题可以在评论区留言,或者私聊yena都可以呦!


1. 类的组合

在一个类中,镶嵌另一个类的对象作为数据成员,称为类的组合。该内嵌的对象称为对象成员,也称为子对象

1.1 对象成员的声明

具体格式 我们看下面的代码,在Stu类的私有成员里内嵌一个teacher的对象t1
在这里插入图片描述

1.2 对象成员的初始化

使用对象成员,要注意对象成员初始化的格式,当创建类的对象时,如果这个类中有对象成员,则内嵌对象成员也将被自动创建。所以,在初始化本类的数据成员时,也要对内嵌的对象成员进行初始化
初始化的格式为 类名::类名(形参表):对象成员1(形参表1),对象成员2(形参表2) 示例如下。
在这里插入图片描述
注意
当调用此构造函数时,首先是对按内嵌的对象成员在teacher类声明中的顺序依次调用它们的构造函数,进行初始化,之后再执行Stu类的构造函数,初始化类Stu中的其他成员。析构函数的调用顺序与构造函数相反

1.3 对象成员的访问

如下代码,访问teacher中的show函数,要缀上对象名t1,注意是定义的对象名,不是类名。
在这里插入图片描述
本节完整代码如下
在这里插入图片描述

2.常类型

程序中各种形式的数据共享,在一定程度上破坏了数据的安全性,而常类型的引入,既能保证数据共享,又能防止数据改动。常类型是指使用类型修饰符const说明的类型。常类型的变量或对象成员的值在程序运行期间是不可改变的。

2.1 常引用

在说明引用时用const修饰,则此引用为常引用,用常引用为形参,可避免形参值被改变
格式为 const 类型名 & 引用名,示例如下。
在这里插入图片描述

2.2 常对象

说明对象时用const修饰,则此说明的对象为常对象,常对象的数据成员值在对象的整个生存期间内不能被改变。
格式为 类名 const 对象成员名 (参数表)
或者const 类名对象成员名 (参数表)

示例如下,c1为常对象,其值不能改变。
在这里插入图片描述

2.3 常数据成员

类的数据成员可以是常量或常引用,使用const说明的成员常数据成员。如果一个类中说明了常数据成员,则构造函数只能通过成员初始化列表对该数据成员进行初始化,其他任何函数都不可对该数据成员赋值。
在这里插入图片描述

2.4 常成员函数

在类中使用关键字const说明的成员函数为常成员函数。const是函数类型的一部分,在声明函数和调用函数时都要有关键字const,在调用时无需加const
格式为 类型说明符 函数名 (参数表)const;

void Date::show() const
{
cout<<“年:”<< year <<" 月:"<< month <<endl ;
}

如下代码 show()函数 为重载函数,一个为普通成员函数,另一个是常成员函数。由于只有常成员函数能访问常对象,普通成员函数无法访问常对象,所以常对象f2调用的是常成员函数,f1调用的是普通成员函数。
在这里插入图片描述
在这里插入图片描述
说明
1)常成员函数不能更新对象数据成员的值,也不能调用普通成员函数,所以避免对实参的更改,保证数据安全。
2)常对象只能被常成员函数访问,所以常成员函数为常对象对外的唯一接口。


总结

类与对象到这里就结束啦,要记得时常回顾呀!之前的知识详见主页,后续章节持续更新,大家可以点个关注收藏起来哟!

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值