12类的其他特性.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12类的其他特性

掌握友元函数的运用 掌握虚函数的运用 熟悉静态成员 * * 第12章 类的其他特性 学习目的 * * 12.1 友元函数 为什么要定义友员 ? 类中的私有数据不能 被外部任意访问修改, 只能由 类本身的函数访问修改。 友员的作用 ? 被定义为友员的类或函数 可以访问修改类的私有数据。 友员给予别的类或非成员函数 访问私有成员的权利。 * * 友元函数的说明及使用 什么是友员函数 ? 将一个外部函数(不是类全部,也不 是部分成员函数)声明为一个类的友员,使这个函数 能访问类的私有和保护成员。 声明形式 ? friend 返回类型 函数名(形参); 例如: friend void show(st_n st); * * 注: 1.友元函数不是类的成员函数,函数体中要用运算符“.”来访问对象的成员,不能用this指针。 区别:友元函数必须在类的定义中说明,函数体可 在类内也可在类外定义;友元函数可访问类 中的所有成员。 2.类中对友元函数指定访问权限无效。 3.友元函数的作用域与一般函数的作用域相同。 4.使用友元函数的目的是提高程序的运行效率。 5.友元函数破坏了类的封装性,因而应谨慎使用。 * * 成员函数用作友元 什么是友员成员函数 ? 将一个类的成员函数(不是类全 部)声明为另一个类的友员,使这个函数能访问该类 的私有和保护成员。 声明形式 ? friend 返回类型 类名::函数名 例如: friend void sco::show( ); * * 将类C的一个成员函数说明为类D的友元函数的一般格式: class D; //对类D作引用性说明 class C{ … //类C的成员定义 public: void fun(D ); //只能给出函数的原型说明,因类D没有定义 }; class D{ … friend void C::fun(D ); //定义友元函数 }; void C::fun(D d) //开始定义成员函数 {…} * * 将一个类M中所有成员说明成另一个类N的友元的一般格式: class N{ … //成员定义 friend class M; //说明类M是类N的友元 }; class M{ … //成员定义 }; 类M中的所有成员可使用类N中的全部成员,称类M为类N的友元。 友元关系不传递,不具有交换性,也不具有继承性。 * * 例2:将一个类A的成员函数用作另一个类B的友元函数。 1. 定义了类 A中的函数 Setxy( ) 是类 B 的友员,建立了类和类的成员函数之间的联系。使编程显得更便利。 2. 友员成员函数可以访问并修改类的私有或保护数据,调用类的私有或保护函数,使类不至于由于封装而增加了编程的复杂性。 总的目标:使外部类的成员函数能访问修改类的私有或保护数据、能调用类的私有或保护函数。与友员类的区别是仅将部分成员函数声明为友员,而不是整个类。 * * 1. 定义了类 F2是类 F 的友员,建立了 类之间的联系。使编程显得更便利。 2. 友员可以访问并修改类的私有和保护数 据,调用类的私有和保护函数,使类不 至于由于封装而增加了编程的复杂性。 总的目标:使外部类能访问修改类的私有或保护数据、能调用类的私有或保护函数。 例3:把类作为友元。 * * 12.2 虚函数 多态性是OOP的关键技术之一。它指在一般类中定义的操作在被继承类继承后可以有不同的表现形式。 例如:图形的求面积 类:shape 操作:求面积 类:椭圆 操作:求面积 类:长方形 操作:求面积 解决的方法:用虚函数实现动态联编 * * 虚函数的定义和使用 在基类中,在要被定义成虚函数的函

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档