预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共40页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C++面向对象程序设计5.7基类与派生类的转换5.7基类与派生类的转换5.7基类与派生类的转换5.7基类与派生类的转换5.7基类与派生类的转换5.7基类与派生类的转换5.7基类与派生类的转换5.7基类与派生类的转换5.8继承与组合5.8继承与组合6.1多态性的概念6.1多态性的概念6.3虚函数6.3.1虚函数的作用6.3.1虚函数的作用6.3.1虚函数的作用6.3.1虚函数的作用6.3.1虚函数的作用6.3.1虚函数的作用6.3.1虚函数的作用6.3.1虚函数的作用关联:一个程序自身彼此关联的过程。 静态关联:在程序编译连接阶段进行联编,又称为早期关联。 动态关联:程序运行时进行的关联,又称为滞后关联。 子类型关系:继承是动态联编的基础 虚函数:虚函数是动态联编的关键 动态联编要求继承是public使用虚函数时,需注意两点: 只能将成员函数声明为虚函数 一个成员函数声明为虚函数后,在同一类族中的类就不能再定义一个非virtual的但与该虚函数具有相同参数(参数个数和类型)和返回类型的同名函数。是否把一个成员函数声明为虚函数 成员函数所在类是否会作为基类,成员函数在派生类中功能是否修改 通过对象名还是通过基类指针或引用调用成员函数6.3.4虚析构函数6.3.4虚析构函数6.3.4虚析构函数6.3.4虚析构函数6.3.4虚析构函数6.3.4虚析构函数6.4纯虚函数与抽象类6.4纯虚函数6.4纯虚函数6.4.2抽象类6.4.2抽象类6.4.2抽象类#include<iostream.h> classPoint { public: Point(inti=0,intj=0) {x0=i;y0=j;} virtualvoidDraw()=0; private: intx0,y0; }; classLine:publicPoint { public: Line(inti=0,intj=0,intm=0,intn=0):Point(i,j) {x1=m;y1=n;} voidDraw() {cout<<"Line::Draw()called.\n";} private: intx1,y1; };classEllipse:publicPoint { public: Ellipse(inti=0,intj=0,intp=0,intq=0):Point(i,j) {x2=p;y2=q;} voidDraw() {cout<<"Ellipse::Draw()called.\n";} private: intx2,y2; }; voidDrawobj(Point*p) {p->Draw();} voidmain() { Line*lineobj=newLine; Ellipse*ellipseobj=newEllipse; Drawobj(lineobj); Drawobj(ellipseobj); }6.4.3应用实例