欢迎来到天天文库
浏览记录
ID:48796059
大小:300.50 KB
页数:12页
时间:2020-01-25
《第7章 多态性与虚函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第二部分C++面向对象程序设计第七章多态性与虚函数7.1多态性1.多态性在C++中多态表现为同一形式的函数调用,可能调用不同的函数实现。2.多态性的类型✿静态(编译时的)多态性:在对程序进行编译时,系统就可以确定调用的是哪个函数。✿动态(运行时的)多态性:在程序运行时,系统才可以确定调用的是哪个函数。7.2运算符重载1.运算符重载使C++的标准运算符按定义好的方式操作类的对象。2.运算符重载的规则7.2运算符重载3.运算符重载的原理C++将作用于类对象的各种运算符都处理成一个函数的调用,把被调用的函数称为运算符函数。运算符函数可以是类的成
2、员函数或友元函数。4.运算符函数为类的成员函数一般格式:类型名operator运算符(参数表){…}重载二元运算符时,参数表中应有一个形参。重载一元运算符时,参数表应为空。例:用成员函数重载“+”,实现两个字符串的连接。程序中不能有s4=“begin”+s1;7.2运算符重载5.运算符函数为类的友员函数在类体内说明:friend类型名operator运算符(参数表);在类体外定义运算符函数的一般形式:类型名operator运算符(参数表){…}重载二元运算符时,参数表中应有两个形参。重载一元运算符时,参数表应有一个形参。以下运算符
3、不能重载为友元函数:=、()、[]、->。例:用友员函数重载“+”,实现两个字符串的连接。7.3虚函数例1:一个例子。1.虚函数的引入6.4赋值兼容规则1.赋值兼容规则在公有继承的前提下,基类对象与派生类对象之间的自动类型转换和赋值的规则。2.赋值兼容规则的具体内容✿可以把派生类对象赋给基类对象,反之则不行。例:Baseb1;Derivedd1;b1=d1;✿可以用派生类对象对基类对象或引用进行初始化。例:Derivedd1;Base&r1=d1;✿可以把派生类对象的地址赋给基类对象的指针变量。例:Derivedd1;Base*p=&d1
4、;例2:对前例的修改。✿运行程序后,输出的面积均为0。9.3虚函数2.虚函数虚函数是类成员函数,而且是非静态的。一个成员函数被说明或定义为虚函数后,表示它在派生类中可能有多种不同的实现。对虚函数只能通过指针或引用表示的对象来调用。3.定义虚函数的一般格式virtual类型名成员函数名(形参表){…}类的一个成员函数被说明或定义为虚函数后,由该类派生的类中所有与虚函数函数头相同的函数均为虚函数。例3:通过虚函数实现动态多态性。✿运行程序后,可以正确输出各形状的面积。
此文档下载收益归作者所有