- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
包含了所有的虚函数.ppt
面向对象程序设计——C++;第5章 多态性;编译期绑定和执行期绑定;没有虚函数的情况;举例;#include iostream
#include string
using namespace std;
class Employee{
public:
Employee(string name ,string id){
this-name=name; this-id=id;
}
void print(){//输出姓名和身份证号
cout姓名: name\t\t 编号: idendl;
}
protected:
string name;
string id;
};
;class Manager:public Employee{
public:
Manager(string Name,string id,float s=0.0):Employee(Name,id)
{ WeeklySalary=s; }
void print(){cout经理:name\t\t 编号: id
\t\t 周工资: WeeklySalaryendl;
}
private:
float WeeklySalary; //周薪
};
void main(){
Employee e(黄春秀,NO0009),*pM;
Manager m(刘大海,NO0001,128);
m.print();
pM=m;
pM-print();
Employee rM=m;
rM.print();
};虚函数的意义;虚函数的意义;基类指针或引用指向派生类对象时,虚函数与非虚函数的对象,左图为非虚函数,右图为虚函数;多态性的前提条件;class Base
{
int data;
virtual int add(int i){return i;};
virtual string toString(){ return string(“Base”) };
};
class Derived: public Base
{
public:
string toString()//与基类的函数同名
{
return string( Derived );
}
};
//调用代码
Base* s = new Derived();
couts-toString()endl;
delete s; ;虚函数的背后;多态的实现;虚表vtable与虚表指针vptr;class B
{
int i, j, k; virtual f ( ) {}; virtual g ( ) {};
};
class D: public B
{
int i, m;
f ( ) {};
};;虚函数;虚函数;虚函数的特性 ;虚函数的特性 ;虚函数的特性 ;虚函数的特性 ;虚函数的特性 ;虚函数的特性 ;虚函数的特性 ;虚函数的特性;class B{
public:
void f ( ) { cout bf ; };
virtual void vf ( ) { cout bvf ; };
void ff ( ) { vf(); f(); };
virtual void vff ( ) { vf(); f(); };
};
class D: public B{
public:
void f ( ) { cout df ; };
void ff ( ) { f(); vf(); };
void vf ( ) { cout dvf ; };
};
void main(){
D d; B * pB = d;
pB-f(); pB-ff(); pB-vf(); pB-vff();
};虚析构函数 ;#include iostream
using namespace std;
class A{
public:
~A(){ coutcall A::~A()endl; }
};
class B:public A{
char *buf;
public:
B(int i){buf=new char[i];}
~B(){
delete [] buf;
coutcall B::~()endl;
}
};
void main(){
A* a=new B(10);
delete a;//调用的是A的虚构函数
};class A{
您可能关注的文档
- 例如-贵州大学计算机科学与技术学院.ppt
- 例如用户敲击键盘上的某一个键或是.doc
- 例析分式方程的解法-中小学教育网.doc
- 例谈初中数学如何培养学生的数学抽象概括能力-夷陵区教育局.doc
- 例题6-4(解答).ppt
- 例题详解学习重难点寄书归纳总结例题详解学习重难点重点掌握.ppt
- 供应商插件安装操作指南.doc-首页-中国太平电子化采购平台.doc
- 便携式电子设备、充电器和电源适配器的过流保护元件PPTC.doc
- 保全业整合实务-北市保全公会.doc
- 保留盈余.ppt
- 甘肃省武威第二中学2024-2025学年高一上学期开学检测数学试题.docx
- 甘肃省平凉市庄浪县紫荆中学2024-2025学年高一新生入学考试数学试题.docx
- 广东省东莞松山湖未来学校2024-2025学年高一上学期9月开学核心素养测评数学试卷.docx
- 河南省驻马店市新蔡县第一高级中学2024-2025学年高一上学期开学考试数学测试卷.docx
- 河北省廊坊市文安县第一中学2024-2025学年高一上学期开学考试数学试题.docx
- 黑龙江省牡丹江市第二高级中学2024-2025学年高一上学期开学摸底测试数学试卷.docx
- 湖北省孝感市第一高级中学2024-2025学年高一上学期入学摸底考试数学试卷.docx
- 湖南省株洲市第二中学2024-2025学年高一上学期开学考试数学试卷.docx
- 江苏省连云港市新海高级中学2024-2025学年高一上学期开学质量检测数学试题.docx
- 湖南省永州市第四中学2024-2025学年高一上学期入学测试数学试题.docx
文档评论(0)