程序设计第九章类和对象.docVIP

  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文档。上传文档
查看更多
程序设计第九章类和对象

C++程序设计 第9章 类和对象 面向对象编程和设计以类为基础。类(class)是一种用户定义数据类型。一个类是一组具有共同属性和行为的对象的抽象描述。面向对象的程序就是一组类构成的。一个类中描述了一组数据来表示其属性,以及操作这些数据的一组函数作为其行为。一个类中的数据和函数都称为成员。对象是类的实例,每个对象持有独立的数据值。本章主要探讨类和对象的基本概念。 面向对象编程具有封装性、继承性、多态性的特性,本章主要介绍封装性的初步知识。 9.1 类 定义一个类就是描述其类名及其成员。对于成员,还要描述各成员的可见性。本节也介绍了类与结构之间的区别。 9.1.1 类的定义 如何定义一个类?习惯上将一个类的定义分为两个部分:说明部分和实现部分。说明部分包括类中包含的数据成员和成员函数的原型,实现部分描述各成员函数的具体实现。一个类的一般格式如下: //类的说明部分 class 类名{ private: 一组数据成员或成员函数的说明 //私有成员 protected: 一组数据成员或成员函数的说明 //保护成员 public: 一组成员函数或数据成员的说明 //公有成员,外部接口 }; //类的实现部分 各个成员函数的实现 其中,class是说明类的关键字;类名是一个标识符;一对花括号表示类的作用域范围,称为类体,其后的分号表示类定义结束。 一个类中可以没有成员,也可以有一组成员。成员可分为数据成员和成员函数两部分。一个数据成员描述了每个对象都持有的一个独立的值,就像结构成员。一个成员函数描述了该类对象能被调用而提供的一项服务或一种计算。成员函数区别于普通函数,就是在调用时必须确定一个作用对象。 关键字public、private和protected称为访问控制修饰符,描述了类成员的可见性。每个成员都有唯一的可见性。下一节详细介绍。 一个类中的成员没有前后次序,但最好把所有成员都按照其可见性放在一起。私有成员组成一组,保护成员组成一组,公有成员再组成一组。这三组之间没有次序要求,而且每一组内的多个成员之间也没有次序要求。一个类不一定都具有这三组成员。 成员函数的实现既可以在类体内描述,也可以在类体外描述。如果一个成员函数在类体内描述,就不用再出现在类外的实现部分。如果所有的成员函数都在类体内实现,就可以省略类外的实现部分。在类体外实现的函数必须说明它所属的类名,格式如下: 返回值 类名::函数名(形参表){…} 例9-1,一个日期Date类。该类的每个对象都是一个具体的日期。例如,2009年4月3日就是Date类的一个对象。编程如下: #include iostream.h class Date{ private: int year, month, day; public: void setDate(int y, int m, int d); bool isLeapYear(); void print(){ coutyear.month.dayendl; } }; void Date::setDate(int y, int m, int d){ year = y; month = m; day = d; } bool Date::isLeapYear(){ return year%400 == 0 || year%4 == 0 year%100 != 0; } void main(void){ Date date1, date2; date1.setDate(2000,10,1); date2.setDate(2009,4,3); coutdate1: ; date1.print(); coutdate2: ; date2.print(); if (date1.isLeapYear()) coutdate1 is a leapyear.endl; else coutdate1 is not a leapyear.endl; if (date2.isLeapYear()) coutdate2 is a leapyear.endl; else coutdate2 is not a leapyear.endl; } 执行程序,输出如下: date1: 2000.10.1 date2: 2009.4.3 date1 is a leapyear. date2 is not a leapyear. Date类中定义了3个私有int型数据成员year、month和day,分别表示某个日期的年、月、日。还定义了3个公有成员函数,setDate函数用来为对象设置年月日;isLeapYear函数判断是否为闰年,print函数用来输出。其中print函数在类

文档评论(0)

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

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

1亿VIP精品文档

相关文档