- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高质量C编程1.类和对象
高质量C++编程
——类和对象
项目需求
我们的项目中,GCPtr 类维护着一个将引用
计数和申请所得的内存连接起来list,其中的每
个元素都被封装在GCInfo 对象中,以协助
GCPtr 类。其结构如右图所示:
针对这个需求,我们需要学习“类封装”、
“构造函数/拷贝构造函数/析构函数”、“静态
成员”、“引用计数”、“类聚集”、“资源
指针”、“const成员”等知识。
封装
所谓封装,是将一些散乱的东西打包,对外成为一个整体。
比如,工具箱、抽屉、文具盒、集装箱、垃圾箱…
对于C++语言,则是将事物抽象出来的数据、代码结合,作
为一个整体加以包装。因为完全开放的数据结构容易受到
伤害,是不安全的。
封装的目的是增强安全性和简化编程,使用者不必了解具体
的实现细节,只需要通过对外接口,以特定的访问权限使
用其中的成员即可。
“数据保护—— 限定访问”即为类设计的目的,就是封装的
真谛。
抽象
抽象是对具体对象(问题)进行概括,抽出这一种类对象的
公共性质并加以描述的过程。抽象是设计类的思维先导。
集中注意力,只关注问题中那些在当前背景下最为重要的部
去粗取精,由表及里;
分,不被事物的枝尾末节所干扰。 去掉个性,保留共性。
先关注问题的本质及描述,其次关注实现过程或细节。
数据抽象:描述某种类对象的属性或状态(对象相互区别的
特征量)。
代码抽象:描述某类对象的共有的行为特征或具有的功能。
抽象的实现:通过C++语言的类定义。
类
人们用对象的观点将同一种类的实体加以抽象:描述该实体的
共有的属性(对象相互区别的特征量)以及行为特征。这种
抽象的实现造就了类,从而奠定了真正意义上的面向对象程
序设计。
类是有着共同特征与行为、而状态各不相同的物体的总称。
对象是类的实现,是类的代码实体。
类是表现数据高级形态的有力工具。
类的产生基础是封装。
类定义了一层新的作用域。
类定义通常在.h 文件内,成员的实现通常在.cpp文件内(也有
例外的情况)。
类是一种类型
用C++术语来表达:类是一种程序员开发的新类型。
数据成员在对象中的安排:定义在先排列在先、父类在先子类
在后、多继承时继承列表中先写的排在先。
函数成员则定义了、限定了该类型所具有的行为。
由于所有的运算符是语言已定义过的,只适用于基本类型,所
以,对于类类型都不适用(除了少数几个类默认的操作外) ,
用户凡要使用都要重新定义它们——运算符重载。
这样看来,类类型不同于基本类型,但编译器会将其与基本类
型一视同仁,都是类型。
类类型是封装的直接产物,而且还向继承、多态等领域延伸。
成员函数的书写规则
类成员可以是数据、函数或类型别名(稍后有代码实例)。
函数成员可以仅在类中说明原型,在类外给出函数实现,也
可以直接在类中给出函数体,形成成员函数的隐含内联。
允许成员函数为重载函数或带默认参数值的函数。
对成员数据的使用不再遵循“先声明后使用”的原则,即可
以放置在类中任意位置,访问它的成员函数也可以放在类
中任意位置。
凡被调用的成员函数一定要有函数实现。
P
类的深入知识
下面来讨论几个概念:
1. 类的作用域;
2. 类内访问和类外访问;
3. 类的几种用户;
4. 隐含的指针this 。 不要忽视这些“虚”的东
西,它们直接影响到编码。
类作用域
每个类都定义了自己独有的新作用域和唯一的作用域名。
在类的定义体内声明类成员,将成员名引入本类的作用域中。
不同的类具有不同的类作用域。
类作用域恰恰是封装的重要体现。
类作用域并不像函数作用域或块作用域那样容易观察到边界,
一般地说,我们可以把类的作用域视为三部分组成:
类定义部分{ } ;
以此为基础来理解、区
类外成员函数定义时的形参表部分; 分“类内” “类外”。
类外成员函数定义时的函数体部分。
进入成员函数的形参表和函数
您可能关注的文档
最近下载
- 食品生产监督检查要点_培训讲座课件.pptx
- 变更工程施工方案申请(3篇).docx VIP
- 智慧方案智慧矿山整体解决方案(41页PPT).pptx VIP
- 舒曼声乐套曲《戒指在我手上》Op.42, No.4 (Du Ring an meinem Finger)声乐+钢琴伴奏谱 带歌词.pdf VIP
- ISO11898-2中文版完整文件.docx VIP
- 职业病知识培训职业健康检查课件.pptx VIP
- 2025版《煤矿安全规程》宣贯培训课件.pptx VIP
- 球磨机安全事故案例课件.pptx VIP
- 药物不良反应的识别与处理.pptx VIP
- T_CCMA 0113-2021 高空作业车 检查与维护规程.docx VIP
文档评论(0)