- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c++第九章类.ppt
2、静态数据成员 所有对象共享一个静态数据成员,该成员和一般的数据成员不同,该数据成员为类所拥有,而不为某个对象所独有。 3、静态数据成员的使用 定义:加上static即可,如static int count; 初始化:需要在类体外进行初始化,int count=0; 调用:类名::成员名,如union::count; 4、静态成员函数 意义:一般若类中定义有静态的数据成员,此时会定义一个合适的成员函数来对该静态数据成员进行操作。 定义:在函数前加上static 即可,但是在静态成员函数中,不能对非静态的数据成员进行处理; 调用:类名::函数名,如: person::spend (300); * 第九章 类 主要内容: 第一节 类的理解与定义、对象定义; 第二节 构造函数; 第三节 常成员; 第四节 友元; 第九章 类(一) 学时数:2课时; 重难点: 类的理解; 类的定义; 对象的定义。 一、类的理解 类包含的成员有: 数据成员(属性); 成员函数(功能); 类是用户为了处理问题的需要,根据需求自己定义的一个数据类型,它将不同类型的数据和与这些数据相关的操作封装(encapsulation)在一起的集合体。 二、类的定义 1、定义格式为: class 类名 { private: 私有数据成员和成员函数; protected: 保护数据成员和成员函数; public: 公有数据成员和成员函数; } 例1:下面是一个关于日期类的定义 class Tdate { private: int year,month,day; public: void SetDate(int y,int m,int d) { year=y;month=m;day=d;} int IsLeapYear( ){ return (year%4==0 year%100!==0)||(year%400==0);} void print( ){ coutyear.month.dayendl;} }; (1)所谓访问权限,若为public,则该成员可以被成员函数或对象在任意地方访问;若为private,则只能被成员函数(友元函数)所访问;protected主要用于继承; (2)类中的数据成员的类型可以是任意的,包括整型、浮点型、字符型、数组、指针和引用等。也可以是对象。即另一个类的对象,可以作为该类的成员,但自身类的对象是不可以的; (3)一般地,在类内先说明公有成员,它们是用户关心的,后面说明私有成员; (4)一般将类定义的说明部分或者整个定义部分(包含实现部分)放在一个头文件中; (5)在类的说明部分之后必须加分号“;”; (6)在类内不允许对所定义的数据成员进行初始化。 2、说明: 例如,前面讲过的Tdate类中,下面的定义是错误的。 Class Tdate { public: ┇ private: int year=1998,month=4,day=9; //这里,不允许对数据成员进行初始化 }; 3、类成员函数的定义 可以在类体中对成员函数进行说明,而该成员函数的定义部分可以放到类体外,其定义格式为的格式如下: 返回类型 类名::成员函数名(参数表列) { 函数体 } 类的成员函数对类的数据成员进行操作,成员函数的定义体可以在类的定义体中,如例2所示。 例2:日期类的定义 class Tdate { private: int year,month,day; public: void SetDate(int y,int m,int d); int IsLeapYear( ); void print( ); }; 日期类成员函数的实现: void Tdate::SetDate(int y,int m,int d) { year=y; month=m; day=d; } int Tdate::IsLeapYear( ) { return (year%4==0 year%100!=0)||(year%400==0); } void Tdate::print( ) { coutyear.month.dayendl; } 4、练习: 定义一个平面上的一个点类,该类包含两个数据成员分别表示其横纵坐标,并包含一个成员函数,能够以合适的形式输出该点的坐标值; 定义一个线段类,该类包含合适的数据成员
文档评论(0)