- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.2 C++类 主要内容(约5学时): 类的定义与实现,对象的定义及使用 对象的初始化 构造函数 析构函数 静态成员 this指针 友元 * 为了支持面向对象程序设计,C++在C语言结构(struct)数据类型的基础上引入了类这种抽象数据类型。 C++面向对象编程实质上就是面向类编程,只有定义和实现了类,才能声明属于这个类的对象,才能通过对象使用定义的成员。 传统C程序员把编程重点放在函数的编写上,而C++程序员把重点放在类的定义和实现上。 3.2.1 类的定义与实现 * 对象的属性抽象为数据成员(又称成员变量),将对象的行为抽象为成员函数(又称方法),并对它们进行封装。 C++类在形式上类似于C语言中用户自定义的结构类型,但定义类时规定了成员的访问控制权限。对象只能访问所属类的公有成员,而类的私有成员只能在类的成员函数中被访问。 C++类定义的基本形式 类的定义与实现 * class 类名 { private: 私有数据成员和私有成员函数的声明列表; public: 公有数据成员和公有成员函数的声明列表; protected: 保护数据成员和保护成员函数的声明列表; }; C++类定义的基本形式: * 类的定义由关键字class开始,其后为用户定义的类名,花括号括起来的部分称为类体。 关键字:private(默认值)、public、protected,称为访问权限控制符,用来设置成员(数据成员和函数成员)的访问属性。 private属性表示该成员是类的私有成员,它们只允许被本类的成员函数访问或调用,数据成员一般定义为private属性; 说明: * public属性表示该成员是类的公有成员,它们允许被本类或其它类的成员函数(通过本类对象)访问或调用,是类的外部接口,成员函数一般定义为public属性; protected属性表示该成员是类的保护成员,它们允许被本类的成员函数和派生类的成员函数访问或调用(暂时不用,到继承再讲)。 例: 说明: * class Time{ private: // 最好不要省略private int hour; // 数据成员,表示小时 int minute; // 数据成员,表示分钟 int second; // 数据成员,表示秒 public: void setTime(int, int, int); // 成员函数,设置时间 void showTime(); // 成员函数,输出时间 }; 例 定义类Time(表示时间)。 私有数据成员hour、minute 和second只能在该类的成员 函数中被访问或赋值; 公有成员函数setTime、showTime 允许被本类或其它类的成员函数 (通过本类对象)访问或调用, 可在外部被调用,但必须通过一个 本类对象,作为该对象的成员使用。 * 完成了定义类的成员的工作,下一步的工作是实现所定义的类。 类的实现实质:类的成员函数的实现,即定义类的成员函数。 成员函数的定义形式:与一般函数的定义形式基本相同,但必须在成员函数名前加上类名和作用域限定符(::)。 成员函数的定义也可放在类体内(该函数声明之处),这时成员函数将变成内联函数。 例: 类的实现: * void Time::setTime(int h, int m, int s) { hour=(h=0 h24) ? h:0; // 设置时间 minute=(m=0 m60) ? m:0; second=(s=0 s60) ? s:0; } void Time::showTime() { couthour:minute:secondendl; } 例 类Time的实现。 private成员hour、minute和 second不允许外界存取, 所以为类Time增加两个 public成员函数,供外界 设置或显示private成员。 * 对象是类的一个实例,定义并实现了类,就可以利用定义好的类来声明对象,即创建对象。声明对象的形式与声明普通变量类似,例如: Time t1, start ; Time *pt1=t1 利用类声明对象: * 声明对象后,就可以通过成员运算符“ . ”或指向运算符“-”访问对象的公有成员,但不能访问对象的私有成员。 例如,公有成员函数调用: t1.setTime(); start.showTime(); pt1-setTime(); 注意:任何形如t1.hour、t1
文档评论(0)