C++程序设计第八.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计第八

* * * * * * * * * 在类外实现成员函数,使用inline关键字。(接下页) * * * * * * * * 给各成员数据赋初值。 * * 如果希望程序在对象被删除前的时刻自动完成某些事情,可以写入析构函数中。 * * * 作用:使用一个对象(参数指定的对象),去初始化一个正在被建立的同类型对象 * * * * * * * * 全局对象不好,但复杂程序都是由许多程序员共同设计的,因此需要这种性质的对象。 使用类中的静态数据成员——解决访问权限控制问题。 使用静态成员函数——解决操作合法性控制问题。 * * 友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够通过对象名访问private和protected成员 作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。 类的主要特点是实现数据隐藏,即不允许非成员函数对它访问,但在某些场合下,非成员函数中需要通过对象名访问private成员,这可以通过友元函数来实现;有些函数需要放在类的外面,或者类设计完后补充的,不能成为成员函数,但又需要访问类中的私有成员。 举例:P57 * * 在友元函数Distanc的函数体中可以访问Point类对象 a,b 的私有成员 * 一个类可以被声明为另一个类的友元。 若声明B类为A类的友元,意味着B类的所有成员函数(包括构造函数和析构函数)将成为A类的友元。 声明语法:在A类中用friend修饰说明B类。 * B类声明为A类的友元,意味着B类的所有函数包括构造函数和析构函数)成为A类的友元。 * 在B类的set( )函数中,访问了A类对象a的私有成员x * * * -*- 例 常成员函数举例 #includeiostream.h class R { public: R(int r1, int r2){R1=r1;R2=r2;} void print( ); void print( ) const; private: int R1,R2; }; -*- 例 常数据成员举例 #includeiostream.h class A {public: A(int i); void print( ); const int r; private: const int a; static const int b; //静态常数据成员,只能初始化,不能赋值; }; -*- 8.14 常成员 常成员函数的特点: const是函数类型的一个组成部分,在函数实现时也要带const关键字。 常成员函数不能更新对象的数据成员,也不能调用该类中的非常成员函数。 常对象只能调用常成员函数,但是常成员函数也可以被普通对象来调用。 const关键字可以被用于参与对重载函数的区分。 8.15 组合关系 -*- 8.15 组合关系 现实世界中对象与对象之间的整体-部分关系又称为组合关系。生活中有很多这方面的实例。例如,一辆汽车由四个车轮、一个方向盘和一个发动机等部件组成,一个桌子有一个桌面和四个桌腿组成。那么,汽车对象和车轮对象、方向盘对象以及发动机对象之间就构成了组合关系,桌子对象和桌面对象以及桌腿对象之间也构成了组合关系。 -*- 8.15 组合关系 -*- 8.15 组合关系 #include iostream using namespace std; class Tyre // 轮胎类Tyre的定义 { public: Tyre() { coutConstructing one Tyre.endl; } private: float maxSpeed; // 最大速度 int loadIndex; // 载重指数 float diameter; // 直径 char spec[20]; // 规格 char company[20]; // 生产厂家 }; -*- 8.15 组合关系 class SteeringWheel // 方向盘类SteeringWheel的定义 { public: SteeringWheel() { coutConstructing one SteeringWheel.endl; } private: int color; // 颜色 char material[20]; // 材质 char type[10]; // 类型 char company[20]; // 生产厂家 }; -*- 8.15 组合关系 clas

文档评论(0)

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

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

1亿VIP精品文档

相关文档