- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8课类中的封装
类的组合
键盘类
鼠标类
显示器类
CPU类
Memory类
硬盘类
主板类
。。。
电脑类
类的组合
思考
学习电脑组装需要多少时间?
学习电脑组装是否需要学习显示器,键盘,鼠标,主板,内存等部件的设计与制造?
类的封装
类通常分为以下两个部分
类的实现细节
类的使用方式
内部实现细节
使用方式
类的封装
当使用类时,不需要关心其实现细节
当创建一个类时,才需要考虑其内部实现细节
例:
使用手机时,只需要知道如何发短信,打电话,拍照等等即可,不需要关心手机是如何开发出来的。
手机开发工程师就需要考虑手机内部的实现细节,如硬件细节和软件细节。
类的封装
封装的基本概念
根据日常生活中的经验:并不是类的每个属性都是对外公开的
如:女孩子不希望外人知道自己的年龄和身高
如:一些男孩子不希望别人知道自己会尿床
而一些类的属性是对外公开的
如:人类的姓名,学历,国籍等
因此,需要在类的表示法中定义属性和行为的公开级别
类似文件系统中文件的权限
类的封装
C++中类的封装
成员变量
C++中用于表示类属性的变量
成员函数
C++中用于表示类行为的函数
在C++中可以给成员变量和成员函数定义访问级别
public
成员变量和成员函数可以在类的内部和外界访问和调用
private
成员变量和成员函数只能在类的内部被访问和调用
手把手教你写代码
类成员的访问属性
Example8-1.cpp
类成员的作用域
类成员的作用域都只在类的内部,外部无法直接访问
成员函数可以直接访问成员变量和调用其它成员函数
类的外部可以通过类变量访问public成员
类成员的作用域与访问级别没有关系
C++中用struct定义的类的所有成员默认为public
实例分析
类成员的作用域
Example8-2.cpp
问题
struct变得越来越不像它在C中的样子了!!!
类的真正形态
struct在C语言中已经有了自己的含义,只能继续兼容
在C++中提供了新的关键字class用于类定义
class和struct的用法是完全相同的
class和struct有什么区别?
类的真正形态
在用struct定义类时,所有成员的默认属性为public
在用class定义类时,所有成员的默认属性为private
8-1.cpp
手把手教你写代码
一个运算类的实现
要求:
提供setOperator函数设置运算类型,如加,减,乘,除
提供setParameter函数设置运算参数,类型为整型
提供result函数进行运算,其返回值表示运算的合法性,通过引用参数返回结果
运算类的改进
在Operator中所有成员函数的实现都在类中完成
问题:对于使main函数来说,只需要知道怎么使用Operator即可,没有必要知道其实现
解决方案:将Operator类的实现和定义分开
Operator.h头文件中只有类的声明
Operator.cpp中完成类的其它实现
手把手教你写代码
运算类的改进
小结
类的精华在于封装
将实现细节和使用方式相分离
C++中通过public和private实现类的封装
public成员可以通过变量被外界访问
private成员只能够在类内部使用
类的定义和实现可以分开到不同的文件中
文档评论(0)