- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
P151 例5.20 复数的加法 #include iostream.h class complex { double real,imag; public: complex(double r=0, double i=0) { real=r; imag=i; } void list(); friend complex add(complex x,complex y); }; void complex::list() { cout(real; if(imag=0)cout+; coutimagi); } complex add(complex x, complex y) { complex temp; temp.real=x.real+y.real; temp.imag=x.imag+y.imag; return temp; } void main() { complex ob1(2, 1.5); complex ob2(3.0, -6); complex obb; obb=add(ob1,ob2); ob1.list(); cout+; ob2.list(); cout=; obb.list(); coutendl; } * 一个类的成员函数是另一个类的友元函数 #include iostream.h #include string.h class girl; //前向声明 class boy { char *name; int age; public: boy(char *n, int d) { name=new char[strlen(n)+1]; strcpy(name,n); age=d; } ~boy(){ delete []name; } void print(girl ); }; class girl { char *name; int age; char *color; public: girl(char *n, int d, char *c) { name=new char[strlen(n)+1]; strcpy(name, n); age=d; color=new char[strlen(c)+1]; strcpy(color, c); } ~girl(){ delete []name; } friend void boy::print(girl ); }; void boy::print(girl g) { cout男孩name; cout的年龄是ageendl; cout女孩g.name的年龄是g.age; cout,帽子是g.color颜色的\n; } void main() { boy b(路路, 13); girl g(萍萍, 15, 红); b.print(g); } 程序输出结果: 男孩路路的年龄是13 女孩萍萍的年龄是15,帽子是红颜色的 * 友元类 当一个类A的所有成员函数均需作为类B的友元函数时,可以把类A声明为类B的友元类。 声明格式:在类B的定义中 friend class 友元类名; 友元的使用降低了数据的隐藏性,不能滥用。 * P153 例5.22 #include iostream.h class X { friend class Y; int x; static int y; public: void set(int i){ x=i; y+=x; } void Display() {coutx=x,y=yendl;} }; int X::y=1; class Y { int yy; public: Y(int,X); void Display(X); }; Y::Y(int i, X a) { yy=i; a.x=a.x*i; } void Y::Display(X a) { cout“x=”a.x; cout,y=X::y cout,yy=yyendl; } void main() { X obx; obx.set(5); obx.Display(); Y oby(8,obx); obx.Display(); obx.set(9); oby.Display(obx); } 程序输出结果: x=5, y=6 x=40, y=6 x=9, y=15, yy=8 * § 5.9 类模板 int add(in
您可能关注的文档
- 电工学课件:第七章 电动机.ppt
- C++程序设计与实践:11-模板和泛型编程.ppt
- C++程序设计与数据结构基础:第1章 C++程序设计基础.ppt
- C++程序设计与数据结构基础:第2章 C++简单程序设计.ppt
- C++程序设计与数据结构基础:第3章 数组与指针.ppt
- C++程序设计与数据结构基础:第6章 继承和派生类.ppt
- C++程序设计与数据结构基础:第7章 多态性和虚函数.ppt
- C++程序设计与数据结构基础:第8章 C++ IO流标准库.ppt
- C++程序设计与数据结构基础:第10章 非线性结构.ppt
- C++程序设计与数据结构基础:第11章 查找和排序.ppt
- 初中劳动教育智慧云平台应用研究:基于信息技术与劳动教育深度融合的实践路径教学研究课题报告.docx
- 基于移动学习的初中物理数字教育资源轻量化开发与教学策略教学研究课题报告.docx
- 《餐饮业服务创新对顾客体验质量、口碑效应与市场占有率的影响》教学研究课题报告.docx
- 校园文化建设特色主题活动对学生创新思维培养的实践探索教学研究课题报告.docx
- 初中化学教师教学画像与教学风格演变对教学效果的启示教学研究课题报告.docx
- 《农产品冷链物流损耗对冷链物流企业市场竞争力的影响研究》教学研究课题报告.docx
- 小学数学竞赛课程设计与教学实施效果评价报告教学研究课题报告.docx
- 《垃圾焚烧发电厂二噁英排放控制技术对生态环境保护的贡献分析》教学研究课题报告.docx
- 基于脑机接口的初中化学实验操作技能训练信号处理算法优化设计教学研究课题报告.docx
- 高中美术教育中传统绘画技法与现代审美融合研究教学研究课题报告.docx
文档评论(0)