多态性 C++语言程序设计 教学PPT课件.pptx

多态性 C++语言程序设计 教学PPT课件.pptx

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录;8.1 多态性概述;8.1.1 多态的类型;8.1.2 多态的实现;8.1.2 多态的实现;8.2 运算符重载;8.2.1 运算符重载的规则;8.2.1 运算符重载的规则;8.2.1 运算符重载的规则;8.2.2 运算符重载为成员函数;8.2.2 运算符重载为成员函数;例8-1复数类加减法运算重载—成员函数形式;例8-1(续);例8-1(续);例8-1(续);程序输出的结果为: c1 = (5, 4) c2 = (2, 10) c3 = c1 - c2 = (3, -6) c3 = c1 + c2 = (7, 14) 复数加减法运算重载为复数类的成员函数,除了函数声明及实现的时候使用关键字operator之外,运算符重载函数与类的普通成员函数没有区别; 可以直接通过运算符、操作数的方式来完成函数调用,运算符“+”、“-”原来的功能都不变,同时添加了新的针对复数运算的功能; “+”、“-”运算符作用于不同的对象上会导致完全不同的操作行为,具有了更广泛的多态特征。;重载的“+”、“-”函数中都是创建一个临时的无名对象作为返回值: return Complex(real + c2.real, imag + c2.imag); 调用Complex构造函数创建一个临时对象并返回它。 也可以按如下形式返回函数值: Complex Complex::operator + (const Complex c2) const{ //重载运算符函数实现 Complex c(real+c2.real, img+c2.img); return c; } ;运算符成员函数的设计;运算符成员函数的设计(续);例8-2 单目运算符“++”重载为成员函数形式 ;#include iostream using namespace std; class Clock { //时钟类定义 public: //外部接口 Clock(int hour = 0, int minute = 0, int second = 0); void showTime() const; Clock operator ++ (); //前置单目运算符重载 Clock operator ++ (int); //后置单目运算符重载 private: //私有数据成员 int hour, minute, second; }; ? Clock::Clock(int hour/* = 0 */, int minute/* = 0 */, int second/* = 0 */) { if (0 = hour hour 24 0 = minute minute 60 0 = second second 60) { this-hour = hour; this-minute = minute; this-second = second; } else cout Time error! endl; };void Clock::showTime() const { //显示时间函数 cout hour : minute : second endl; } ? Clock Clock::operator ++ () { //前置单目运算符重载函数 second++; if (second = 60) { second -= 60; minute++; if (minute = 60) { minute -= 60; hour = (hour + 1) % 24; } } return *this; } ? Clock Clock::operator ++ (int) { //后置单目运算符重载 //注意形参表中的整型参数 Clock old = *this; ++(*this); //调用前置“++”运算符 return old; };int main() { Clock myClock(23, 59, 59); cout First time output: ; myClock.showTime(); cout Show myClock++: ; (myClock++).showTime(); cout Show ++myClock: ; (++myClock).showTime(); return 0; };例8-2(续);8.2.3运算符重载为非成员函数;8.2.3运算符重载为非成员函数(续);8.2.3运算符重载为非成员函数(续);例8-3以非成员函数形式重载Complex的加减法运算和“”运算符;//8_3.cpp #in

文档评论(0)

liuxing044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档