- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《C面向对象程序设计》谭浩强第二章
CPP_3 3.9 静态成员 静态成员函数示例 #include iostream.h #include string.h class Student { protected: static int count; //静态数据成员 char name[40]; public: Student(char* pN =no name) { coutCreate one student pN\n; strcpy(name,pN); count ++; coutcountendl; } ~Student( ) { coutdestruct one student “ name\n; count --; coutcountendl; } static int number( ) // 静态成员函数 { return count; } // 直接引用本类的静态数据成员 }; int Student::count=0; void fn( ) { Student s1(zhangsan); Student s2(lisi); coutStudent::number( ) endl; couts1.number( ) endl; couts2.number( ) endl; } void main( ) { fn( ); coutStudent::number “ Student::number( ) endl; } 3.10 友元 类具有封装性,类中的私有数据只有通过该类的成员函数才可以访问。如果在程序中需要访问类的私有成员,就必须通过对象来调用类的成员函数,频繁调用成员函数将影响程序运行效率。 为解决上述问题,C++ 提供一种友元机制,友元可以不通过调用成员函数就可以直接访问类的私有数据,以提高程序运行效率。 友元机制在数据封装这堵不透明的墙上开了一个小孔,友元的使用要慎重。 友元可以是一个普通函数,可以是一个类的成员函数,也可以是一个类。 3.10 友元 友元函数 特点: 在类体里边说明,在函数的类型符前加关键字friend; 在类体外定义,定义格式与普通函数相同; 友元函数是非成员函数,在调用上与普通函数相同; 友元函数可以直接访问该类中的私有成员。 例如:下面程序段说明友元函数的说明和定义方法 class X { int i; friend void func( X *, int ); // friend function declaration Public: void member_func ( int ); }; void func(X *ptr, int a) { //friend function definition ptr-i=a; } void X::member_func(int a) { //member function definition i=a; } 一个友元的综合示例 #include iostream.h #include math.h class Point {public: Point ( double i, double j ) { x=i; y=j; } void getxy( ) {cout“(”x“,”y“)”endl; } friend double Distance (Point a, Point b); private: double x,y; }; double Distance (Point a, Point b) { //友元函数的定义 double dx=a.x-b.x; double dy=a.y-b.y; return sqrt(dx*dx+dy*dy); } void main( ) { double d11=3.0,d12=4.0; double d21=6.0,d22=8.0; Point P1(d11,d12),P2(d21,d22); P1.getxy( ); P2.getxy( ); double d=Distance(P1,P2); //友元函数调用 cout“Distance is ”dendl; } 运行结果:
您可能关注的文档
- 六、施工质量验收记录.doc
- 世界经典广告案例分享.ppt
- 1.毕业论文封面、中外文摘要.doc
- 2012年秋九年级数学期中复习二.doc
- 9BU1复习.ppt
- 设备缺陷管理实施细则.doc
- 2011年秋季泉州市中职电类《电工基础》会考模拟试卷2.doc
- 同山中心校破坏性地震应急预案.doc
- 关于“批评权”.doc
- 麦特隆光泽剂GT-200.ppt
- 中国国家标准 GB 14287.5-2025电气火灾监控系统 第5部分:测量热解粒子式电气火灾监控探测器.pdf
- 《GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存》.pdf
- GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求.pdf
- 《GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求》.pdf
- 《GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备》.pdf
- GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备.pdf
- GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
- 中国国家标准 GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
最近下载
- 2025四川成都环境投资集团有限公司招聘笔试历年参考题库附带答案详解.docx
- 市政道路及雨污水工程施工组织设计.docx VIP
- 数列大题综合18种题型(讲练)-高考数学二轮复习.pdf VIP
- 10 北京故宫(课件)-浙美版初中美术七年级下册.pptx VIP
- DB54T 0342-2024 江达牦牛DB54T 0342-2024 江达牦牛.pdf VIP
- DB34_T 1267-2025 造林技术规程DB34_T 1267-2025 造林技术规程.docx VIP
- 某中学三年(2025年-2028年)发展规划.docx VIP
- 14449小学课程与教学设计-精讲.pdf VIP
- VD4真空断路器(New Design)(安装使用说明书).pdf
- DB22_T 3650-2024 柞蚕术语DB22_T 3650-2024 柞蚕术语.pdf VIP
原创力文档


文档评论(0)