- 5
- 0
- 约1.01万字
- 约 55页
- 2016-11-27 发布于河南
- 举报
c8多态
第八章 多态性 本章主要内容 多态性概念 运算符重载 虚函数 纯虚函数 抽象类 多态性 (Polymorphism) 多态性是面向对象程序设计的重要特征。 多态性:在程序中同一个符号在不同的情况下具有不同解释的现象。 多态性的类型: 编译时多态(静态绑定):程序在编译时就能确定的多态性。 运行时多态(动态绑定):程序到运行是才能确定的多态性。 多态性的概念 编译时多态性的实现: Overloading 函数重载 运算符重载 运行时多态性的实现: 继承、虚函数、超类指针或引用 问题举例——复数的运算 class complex //复数类声明 { public: complex(double r=0.0,double i=0.0){real=r;imag=i;} //构造函数 void display( ); //显示复数的值 private: double real; double imag; }; 重载+-运算符, 进行复数+- 运算符重载 Operator Overloading 运算符重载两种形式: 类的成员函数 类的友元函数 运算符重载为类的成员函数 声明形式 函数类型 operator 运算符( const Class rval ) { ...... } Operator is called via object on left side Invoking an Overloaded Operator Operator can be invoked as a member function: object1.operator+(object2); It can also be used in more conventional manner: object1 + object2; 运算符重载的规则和限制 可以重载C++中除下列运算符外的所有运算符: :: . .* sizeof ?: 只能重载已有的运算符 不能改变操作数的个数 重载运算符不可使用缺省参数;同时要有一个操作对象是自定义类型; 运算符重载之后的优先级和结合性不能改变 除了赋值运算外,重载运算符可由派生类继承下去; 运算符=、()、[]、-可作为类成员运算符,但不可作为友元运算符。 运算符重载为类的成员函数 双目运算符 Binary object1 B object2, 相当于 object1.operator B(object1) 运算符重载为类的成员函数 单目运算符 Unary 前置单目运算符 U 重载形式(重载函数没有形参): returnType operator U ( ) {…} 表达式 U object 相当于 object.operator U ( ) 运算符重载为成员函数 后置单目运算符U: ++和- - 重载形式(重载函数需要有一个整型形参): returnType operator U ( int ) {…} 表达式 object U 相当于 object.operator U (0 ) 例如: object++ 相当于 object.operator ++(0) 例8.2 前置++和后置++运算符重载为时钟类的成员函数。 操作数是时钟类的对象。 实现时间增加1秒钟。 #includeiostream.h class Clock //时钟类声明 { public: //外部接口 Clock(int NewH=0, int NewM=0, int NewS=0); void ShowTime( ); void operator ++( ); //前置单目运算符重载 void operator ++(int); //后置单目运算符重载 private: //私有数据成员 int Hour, Minute, Second; }; void Clock::operator ++( ) //前置单目运算符重载函数 { Second++; if(Second=60) { Second=Second-60; Minute++; if(Minute=60) { Minute=Minute-60; Hour++; Hour=Hour%24; } } cout++Clock: ; } void Clock::operator ++(int) //后置
您可能关注的文档
最近下载
- 制造业信息化战略规划实施与优化-PDM.docx VIP
- 那智不二越机器人flexgui toolbox操作说明书.pdf VIP
- 智慧工厂-智慧工厂解决方案.docx VIP
- 高中化学解题方法归纳:和量法.doc VIP
- 译林牛津新版高中英语(必修1-3)单词表.pdf VIP
- 包装有限公司分切机安全风险分级清单.docx VIP
- 重庆市西南大学附属中学2025届高三下学期二诊模拟考试物理试卷 含解析.docx VIP
- 【高中英语】《星火英语同步词汇》抗遗忘速记手册.docx VIP
- 成都市锦江区2026届初三一诊(暨期末考试)数学试卷(含答案).docx
- 三坐标 培训教程.pptx VIP
原创力文档

文档评论(0)