c++语言知识点ch05-3v2009.pptVIP

  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语言知识点ch05-3v2009

CH 5: Class and Object Advanced CH 5: Class and Object Advanced 5.4 对象与函数 5.5 类的友元 5.6 类的静态成员 5.4 对象与函数 (1) 1. 对象作为函数参数 三种形式: void ShowTime ( Time t ) { t.PrintTime(); } 参数传递时,要根据实参创建形参对象,调用拷贝构造函数。 void ShowTime ( Time t ) { t.PrintTime(); } 形参是实参的引用,不创建对象,效率高;允许通过形参修改实参。 void ShowTime ( const Time t ) { t.PrintTime(); } 形参是实参对象的常引用,不创建对象,效率高;不允许通过形参修改实参。 5.4 对象与函数 (1) 编程习惯 尽量采用引用传递对象参数,不调用拷贝构造,更高效。 如果不修改实参,尽量使用const引用避免不必要的修改。 5.4 对象与函数 (2) 2. 对象作为函数返回值 三种形式: Time set (int h, int m, int s); 返回临时创建的对象。 Time set (int h, int m, int s); 返回引用,返回时不创建临时对象。 const Time set (int h, int m, int s); 返回常引用,返回时不创建临时对象,但返回结果不可修改。 5.4 对象与函数 (2) 注意:切勿让函数返回局部变量的引用。 当函数返回时,局部变量将会销毁,此时引用的是已经销毁的对象,因而会出现错误。 5.5 类的友元 (1) 1. 友元函数(friend function) 为了提高效率,可以允许指定的函数访问类的私有成员,此时必须在类定义中声明该函数为友元函数。 友元函数 5.5 类的友元 (2) 2. 友元类(friend class) 将另一个类声明为一个类的友元类,则允许另一个类访问这个类的私有成员。 友元类 5.5 类的友元 (3) 3. 关于友元关系的说明 友元关系是单向的(不对称) 友元关系不是传递的 友元关系不能继承 5.6 类的静态成员 (1) 1. 静态变量与静态函数 静态变量 有限的(文件,函数)作用域,全局的生存期。 static int c; //文件作用域 void f() { static int k = 0; //函数作用域,在多次调用之间共享 cout i++ endl; } 静态函数 限定为文件作用域。 static void g(); 5.6 类的静态成员 (2) 2. 类的静态数据成员(static data members) 在类的所有实例之间共享,应该理解为整个类的属性。 访问方式: 类名::静态成员 或 对象.静态成员 类的静态数据成员 类的静态数据成员 5.6 类的静态成员 (3) 3. 静态成员函数(static function members) 在类的多个实例间共享的操作,应改理解为类的操作。静态成员可以被非静态成员访问。 访问方式: 类名::静态成员 或 对象.静态成员 5.6 类的静态成员 (3) 5.6 类的静态成员 (4) 4. 说明 静态函数与非静态函数:由于静态成员不依赖具体对象,所以静态成员函数只能访问静态成员,不能访问非静态成员。但非静态成员函数可以访问静态成员。 用法:类中使用的常量;类的辅助函数。 小结 在函数参数中尽量使用引用传递对象。 类的友元可以访问类的私有成员。 友元可以是函数,也可以是类。 友元关系不对称、不传递、不继承。 类的静态成员用于描述在整个类中共享的信息。 静态成员不依赖于具体对象,不能直接访问非静态成员(必须通过对象进行访问),但非静态成员函数可以访问静态成员。 * Reserved by Zhuang Bo, 2007,2009 Binzhou University * Reserved by Zhuang Bo, 2007,2009 Binzhou University Time f(int h, int m, int s) { Time t(h,m,s); t.print(); return t; } 危险! 返回局部变量的引用! class Point { double x, y; friend double dist(const Point a, const Point b); }; double dist(const Point a, const Point b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } 友元函数声明

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档