- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
不同对象占据内存中的不同区域,它们所保存的数据各不相同,但对成员数据进行操作的成员函数的程序代码均是一样的。 * 构造函数和析构函数是在类体中说明的两种特殊的成员函数。 构造函数是在创建对象时,使用给定的值来将对象初始化。 析构函数的功能正好相反,是在系统释放对象前,对对象做一些善后工作。 * * 由编译器为每个类产生的这种隐含的完成拷贝功能的构造函数,依次完成类中对应数据成员的拷贝。 * 由于派生类可继承基类的成员变量和成员函数,因此在基类中定义好的数据和函数等的程序代码可重复使用,这样可以提高程序的可靠性。 * * class A { float x, y; public: A(float a=0, float b=0){ x=a; y=b; } A operator ++( ){A t; t.x=++ x; t.y=++y; return t;} A operator ++(int) { A t; t.x=x++; t.y=y++; return t;} }; void main(void) { A a(2,3), b; b=++a; b=a++; } * A operator ++( ) { A t; t.x=++ x; t.y=++y; return t; } b=++a; b=a.operator++( ); 返回值 函数名 2 3 a t 3 3 4 4 t作为函数值返回赋给b A operator ++( ) { ++ x; ++y; return *this; } 将对象本身作为函数值返回赋给b * A operator ++(int) { A t; t.x=x++; t.y=y++; return t; } b=a++; b=a.operator++(3); 2 3 a t 3 2 4 3 返回值 函数名 t作为函数值返回赋给b * 用成员函数实现运算符的重载时,运算符的左操作数为当前对象,并且要用到隐含的this指针。运算符重载函数不能定义为静态的成员函数,因为静态的成员函数中没有this指针。 * 运算符重载为友元函数 运算符重载为成员函数时,是由一个操作数调用另一个操作数。 A a ,b , c; c=a+b; 实际上是c=a.operator+(b); c=++a; 实际上是c=a.operator++( ); 即函数的实参只有一个或没有。 c+=a; 实际上是c.operator+=( a ); 重载+= 友元函数是在类外的普通函数,与一般函数的区别是可以调用类中的私有或保护数据。 将运算符的重载函数定义为友元函数,参与运算的对象全部成为函数参数。 A a ,b , c; c=a+b; 实际上是 c=operator+(a, b); c=++a; 实际上是 c=operator++(a); c+=a; 实际上是 operator+=( c, a ); * 对双目运算符,友元函数有2个参数,对单目运算符,友元函数有一个参数。有些运算符不能重载为友元函数,它们是:=,(),[ ],-等 格式为: friend 类型说明 operator运算符(参数表) {......} c=a+b; // c=operator+( a, b) friend A operator + (A a, A b) {.....} * class A { int i; public:public: A(int a=0) { i=a; } void Show(void) { couti=iendl; } friend A operator +(A ,A );//友元函数,两个参数,为引用 }; A operator +(A a , A b) {A t; t.i=a.i+b.i; return t; } void main(void) { A a1(10),a2(20),a3; a1.Show (); a2.Show (); a3=a1+a2; //重新解释了加法,可以直接进行类的运算 a3.Show (); } 相当于a3=operator+(a1,a2) * 对双目运算符,重载为成员函数时,仅一个参数,另一个被隐含;重载为友元函数时,有两个参数,没有隐含参数。 一般来说,单目运算符最好被重载为成员函数;对双目运算符最好被重载友元函数。 6.5矩阵类设计示例 * 继承性是面向对象程序设计中最重要的机制。这种机制提供了无限重复利用程序资源的一种途径。通过C++语言中的继承机制,可以扩充和完善旧
您可能关注的文档
- 大学英语四级听力新题型难点突破 Practice Test 10 Part 2原文与解析.doc
- 大学英语四级听力新题型难点突破 Practice Test 11 Part 1试题.docx
- 大学英语四级听力新题型难点突破 Practice Test 11 Part 2原文与解析.docx
- 大学英语四级听力新题型难点突破 Practice Test 12-Part 1 试题.doc
- 大学英语四级听力新题型难点突破 Practice Test 12-Part 2 原文与解析.doc
- 大学英语四级听力新题型难点突破 Practice test 13 Part 1 试题.docx
- 大学英语四级听力新题型难点突破 Practice test 13 Part 2 原文与解析-2.26改.docx
- 大学英语四级听力新题型难点突破 Practice Test 16 Part 1 试题.docx
- 大学英语四级听力新题型难点突破 Practice Test 16 Part 2原文与解析.docx
- 大学英语四级听力新题型难点突破 Practice Test 17 Part 1 试题.docx
- 戴吾蛟-测绘程序设计基础(VC++net)第七章 文件操作.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第三章 C++控制语句.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第十六章 软件工程初步.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第十五章 控制网平差程序设计.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第十一章 测量平差原理与编程实现.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第十章 线性方程组的求解与矩阵运算.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第四章 数组与指针.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第五章 函数.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)第一章 Visual C++.net程序设计概述.ppt
- 戴吾蛟-测绘程序设计基础(VC++net)前言.ppt
最近下载
- 4郭永康光的干涉-14.ppt VIP
- 中职教育一年级上学期英语《We Are Friends》课件.pptx
- 4郭永康光的干涉-11.ppt VIP
- 《危险化学品目录(2015版)》(2022年调整)-标注为爆炸物的化学品.pdf VIP
- 湘南学院2021-2022学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
- 人美版小学四年级上册美术教案.pdf VIP
- 人教PEP版五年级上册英语Unit 2 My week单元整体教学设计(教案).docx VIP
- 4郭永康 光干涉-7 .ppt VIP
- 小学语文新部编版一年级上册全册教案(2025秋新版).doc
- 湘南学院2022-2023学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
文档评论(0)