1. 1、本文档共265页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 类 类 型 数据封装 C++语言与C语言最大的不同,在于C++语言增加了面向对象的概念。C++语言允许用户定义新的抽象数据类型。 类类型,将一组数据和对它们的相关操作封装在一起,实现的是面向对象中的核心概念: 数据封装; 对象就是类类型的实例。 3.1 类 与 对 象 3.1.1 类的定义 定义用户定义的类型Date ,考虑对该类型数据的操作,可能有: struct Date { int d,m,y;}; void init_date(Date ,int,int,int) Date add_day(Date d,int n); 函数和数据类型之间没有联系,因此,需要操作一个Date数据时,需要Date类型的参数。 C++语言允许在结构类型定义中,加入函数的定义,这些函数的目的,也是要操作某个结构的变量。 该结构更复杂定义为: struct Date { int d,m,y; void init_date(int,int,int); Date add_day(int n); }; 在Date中定义的函数称为成员函数,它们只能被对应的Date类型的变量(此时,称之为对象)以特殊的方式激活。该Date类型在C++语言中称为类类型,是一种抽象数据类型。 对象激活成员函数的方式为: 对象.成员函数(…) Date my_birthday; void f( ) { Date today; today.init_date(27,5,2002); my_birthday.init_date(12,7,1968); Date tomorrow=today; tomorrow.add_day(1); … } 成员函数可以在类类型定义时给出,也可以在类类型定义时只给出成员函数的声明,在类型定义外再给出函数的定义。 格式为: type 类名::函数名(形参表) { … } void Date::init_date( int dd,int mm,int yy) { d=dd; m=mm; y=yy; } 在一个成员函数内部(函数体内),不需要显示指明访问的数据是哪个对象的,虽然一个类类型的所有对象都具有该类类型中定义的所有数据,但成员函数能够“知道”它在操作的数据属于激活该函数的那个对象。 在C++语言中,抽象数据类型更一般的形式为: class Class_name {…}; 称为类类型的定义,它定义了一个新类型。Class_name是类名,也就是该类型的类型名。 结构类型中定义的数据成员并不是唯一地由结构中定义的成员函数进行操作;也可以使用 结构变量.结构数据成员 的方式访问结构类型中定义的数据成员。 将struct 改为class;可以限制类型中定义的数据的访问。 class Date { private: int d,m,y; public: void init_date(int,int,int); Date add_day(int n); }; 其中:public 将类类型中的成员分为两部分,第一部分为私有段,它们只能够被成员函数访问;第二部分为公有段,构成该类类型的对象的访问接口。 注意:结构(struct)是一种特殊的类类型;结构缺省段约束符(private、protected和public)说明的成员是公有段成员。 一个类类型中可以有两种成员:数据和操作。在C++中称它们为数据成员和成员函数。根据它们的被访问权限,成员又可以分为私有段成员、保护段成员和公有段成员。 class 类名 { private: //定义私有段成员 私有段数据和函数定义; public: //定义公有段成员 公有段数据和函数定义; }; 其中,类名是一个标识符,代表类类型的类型名;private、public称为段约束 符,其中private可以缺省(即没有被段约束符说明的成员就是私有段成员); 定义公有和私有成员的顺序可以是任意的。 { }以内的部分 称为类内; { }以外的部分称为类外。 3.1.2 数据封装 一个类的定义实现了数据封装:类外不可见:(即封装起来的部分) 私有段数据 私有段函数原型 私有段函数和公有段函数的实现 类外可见:类向外提供部分 公有段数据 公有段函数原型 class Date { int d,m,y; public: void init_date( int d1,in

文档评论(0)

16588ww + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档