第六章 封装性.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.1 C++类与对象 6.1.1 定义类的语法 图6.1C++语言定义类的语法 ⒈ 类名: 第一个字母用大写,一个有代表性的名字。 ⒉ 成员声明: 在类中声明两类成员: 一类是代表对象属性的数据成员; 另一类是实现对象行为的成员函数。 ⒊ 访问权符 访问权符也叫访问权声明符,它规定类中声明 的成员的访问属性,是C++语言实现封装的基本 手段。 C++语言规定,在一个访问权符后面声明 的所有成员,都具有由这个访问权符规定的访问 属性,直到另一个不同的访问权符出现为止。 C++语言共提供了三个不同的访问权符。 ⑴public(公有的):具有这种访问属性的成员,可被 与该类对象处在同一作用域内的任何函数使用。是 对象向外提供服务的接口。 ⑵private(私有的):私有的成员只能被它所在类中的成员函数及该类的友元函数使用。 ⑶protected(保护):具有这种访问属性的成员只能 被它所在类及从该类派生的子类的成员函数及友元 函数使用。 程序员应该根据成员的使用特点决定对其封装的“严密” 程度。通常的做法是,在定义类时: ⑴把仅供本类使用的数据成员或者成员函数声明为私有的(private)访问属性。 ⑵如果某些数据成员或者成员函数在子类中也需要使用,则应该把它们声明为保护的(protected)访问属性。这些成员除了本类可以使用以外,其派生类也可以直接使用 ⑶把对象向外提供的接口或者服务,即类中的部分允许外界访问的成员函数,声明为公有的(public)访问属性。为了保证对象的封装性,不建议将数据成员声明在public部分。 ⒋ 类关键字 : ⑴用类关键字class定义的类中,成员的缺省访问属性为 私有的。相当于使用了访问权符private。 ⑵用类关键字struct定义的类中,成员的缺省访问属性为 公有的。 ⑶用类关键字union定义的类中,所有成员的访问属性都 固定为公有的,也就是说,成员的公有访问属性是不能更 改的,在这样定义的类中使用前述的任何一个访问权符都 是非法的。 通常,人们在编写面向对象的程序时,总是使用关键 字class来定义类,而关键字struct和union往往只用来定义 数据类型(实质上可看作是没有成员函数只有数据成员的 类)。  下面给出日期类Date的一个定义: 定义类时的注意事项: ⒈在类定义体中不允许对所声明的数据成员进行初始化。 ⒉类中的数据成员的类型可以是任意的,包括整型、浮点型、字符型、数组、指针和引用等。当然也可以是其他类的对象,这是一种对象间的组合关系,即复杂对象中可以包含若干个简单对象。 ⒊一般在类体内先声明数据成员,后声明成员函数。其访问属性的定义请参考6.1.1节中有关访问权符的内容。 ⒋一般将类的定义放到一个头文件中。 ⒌在类public部分声明的成员函数,统称为该类的外部接口,其他对象是通过这些外部接口来使用这个类所提供的服务。 ⒍在类外声明的成员函数,其函数的全名应该是“类名::函数名”,函数原型应该是“返回值类型 类名::函数名(参数表)”。 ⒎可以象重载普通函数那样重载成员函数。(重载将在第八章中详细讲述) 6.1.3声明和使用对象 ⒈声明对象: “类”实质上是程序员自定义的抽象数据类型。定义了一个类之后,就可以用类名作为类型名来声明“数据”。 ⑴在类名后面直接写上对象名 ,如: Date Newday; ⑵如果希望使用带参数的构造函数初始化所创建 的对象,则在对象声明中应该包含一个初值表, 初值表中列出的值自动作为实在参数传给被调用 的构造函数: Date MyBirthday(8,13,1957); Date HerBirthday(9,20,1960); ⑶与普通数据类型相似,定义了一个类之后也可 以声明指向该类对象的指针,例如: Date HerBirthday(9,20,1960); Date *DatePtr=HerBirthday; ⑷同样,也可以为对象声明别名,例如: Date MyBirthday(9,20,1960); Date DateRef=MyBirthday; ⒉ 使用对象 所谓使用对象,就是向对象发送消息,请求 执行它的某个方法,从而向外界提供所要求的服 务。对象响应消息的机制,实际上就是调用该对 象内由消息名指定的那个公有的成员函数。 注意: 非公有部分的成员函数不能向外界提供服务。 声明对象的方式不同,向对象发送消息的格式 也不同。通常有以下几种: ⑴如果声明的是普通对象或引用对象,则

文档评论(0)

zywx66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档