- 30
- 0
- 约5.91万字
- 约 161页
- 2019-05-06 发布于广东
- 举报
第九章 运算符重载 struct A{ int i; A(int v) { i=v; } virtual operator int( ) const{ return i; } //类型转换返回右值 }a(5); struct B{ int i, j; B(int x, int y) { i=x; j=y; } operator int( ) const{ return i+j; } //类型转换返回右值 operator A( ) const{ return A(i+j); } //类型转换返回右值 }b(7, 9), c(a, b); void main(void){ int i=1+(int)a; //强制转换,调用A::operator int( )转换a,i=6 i=b+3; //自动转换,调用B::operator int( )转换b,i=19 i=a=b; //调用B::operator A( )和A::operator int( ),i=16 } 第九章 运算符重载 9.5 重载new和delete 运算符函数new和delete定义在头文件new.h中,new的参数就是要分配的内存的字节数。其函数原型为: extern void * operator new(unsigned bytes); extern void operator delete(void *ptr); 在使用运算符new分配内存时,使用类型表达式而不是值表达式作为实参,编译程序会根据类型表达式计算内存大小并调用上述new函数。例如:new long[20] 。 按上述函数原型重载,new和delete可重载为普通函数,也可重载为静态函数成员。 第八章 多继承类 8.1 多继承类 单继承是多继承的一种特例,多继承具有更强的类型表达能力。 多继承派生类有多个基类或虚基类。同一个类不能多次作为某个派生类的直接基类,但可多次作为一个派生类的间接基类。 class QUEUE: STACK, STACK{/*…*/}; //错误,出现两次 class Q: S {S d;/*…*/}; //正确:采用委托d代理的方式 多继承派生类继承所有基类的数据成员和函数成员。 多继承派生类在继承基类时,各基类可采用不同的派生控制符。 基类之间的成员可能同名,基类与派生类的成员也可能同名。在出现同名时,如面向对象的作用域不能解析,可使用基类类名加作用域运算符::来指明所要访问的基类的成员。 第八章 多继承类 Java、C#、SmallTalk等单继承语言在描述多继承的对象时,必须通过对象成员委托代理实现多继承。 委托代理在多数情况下能够满足需要,但当对象成员和基类存在共同的基类时,就可能对同一个物理对象重复初始化(可能是危险的和不必要的)。 两栖机车AmphibiousVehicle继承基类陆用机车LandVehicle,委托对象成员水上机车WaterVehicle完成水上功能。两栖机车可能对同一个物理对象Engine初始化(启动)两次。 class Engine{ /*...*/}; class LandVehicle: Engine{/*...*/}; class WaterVehicle: Engine{/*...*/}; class AmphibiousVehicle: LandVehicle{WaterVehicle wv; /*...*/}; 第八章 多继承类 C++提供多继承机制描述两栖机车AmphibiousVehicle: class AmphibiousVehicle: LandVehicle, WaterVehicle {/*...*/}; 仅靠多继承仍然不能解决同一个物理对象初始化两次的问题。 可以采用全局变量、静态数据成员,解决同一个物理对象初始化两次的问题,而如此解决相关析构问题则更使程序逻辑复杂化。 上述定义存在的问题:两栖机车要安装两个引擎Engine,可引入虚基类解决该问题。 Engine Engine LandVehicle WaterVehicle AmphibiousVehicle 第八章 多继承类 8.2 虚基类 虚基类用virtual声明,把多个逻辑对象映射成同一个物理对象。 映射成的这个物理对象尽可能早的构造、尽可能晚的析构,构造和析构都只进行一次。若虚基类的构造函数都有参数,必须在派生类构造函数的初始化列表中列出虚基类构造参数。 class Engine{ /*...*/ }; class LandV
您可能关注的文档
- 贵州大学土木建筑工程学院土力学与地基基础课件第九章 桩基础和深基础.ppt
- 贵州大学土木建筑工程学院土力学与地基基础课件第六章 土压力和土坡稳定.ppt
- 贵州大学土木建筑工程学院土力学与地基基础课件第四章 土的压缩性和地基沉降计算.ppt
- 贵州大学土木建筑工程学院土力学与地基基础课件第五章 土的抗剪强度.ppt
- 贵州民族学院数据结构课件 第八章.ppt
- 贵州民族学院数据结构课件 第二章.ppt
- 贵州民族学院数据结构课件 第六章.ppt
- 贵州民族学院数据结构课件 第三章.ppt
- 贵州民族学院数据结构课件 第十二章.ppt
- 贵州民族学院数据结构课件 第十三章.ppt
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
最近下载
- 500t吊车性能表(中文版).pdf VIP
- 人教版八年级上历史知识点总结 .doc VIP
- 米莉的帽子变变变精品解析.ppt VIP
- 职业教育人工智能应用发展报告(2024-2025).pptx VIP
- 2025年高等教育医学类自考-03037药用植物学考试近5年真题集锦(频考类试题)带答案.docx VIP
- TCAQ10201-2024质量管理小组活动准则_可搜索.pdf VIP
- 确定肿瘤的重要基因信息——提取基因图谱信息方法的研究.pdf VIP
- 事业单位嫖娼违法写检讨书.docx VIP
- 人教版物理8年级下册全册教学课件.pptx
- 第二十五章+图形的相似(复习课件)数学冀教版九年级上册.pptx VIP
原创力文档

文档评论(0)