多态是面向对象程序设计的又一大特征多态性是指发出同ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ SecondX = dsx;
SecondY = dsy;
}
第十五页,编辑于星期五:十三点 二十四分。
void Line::Draw()
{
cout << "绘制一条直线,第一点坐标为:("
<< FirstX << "," << FirstY
<< ") ,第二点坐标为:(" << SecondX << "," << SecondY << ")" << endl;
delete pb;
}
第十一页,编辑于星期五:十三点 二十四分。
二、纯虚函数和抽象类
1.纯虚函数 纯虚函数是一种特殊的虚函数,它只有函数的声明,
并没有具体实现函数的功能。它的一般格式如下:
virtual <函数返回类型> <虚函数名称> <(参数列表)> = 0;
第十二页,编辑于星期五:十三点 二十四分。
例12.1 虚函数的定义及使用。
在一个类中用关键字virtual说明的成员函数称为虚函数,其定义的格式如下:
#include pc->Display(); <iostream.h>
第七页,编辑于星期五:十三点 二十四分。
class Country pb->display();
Circle(double dfx = 0.
virtual void display()
{
cout<<"display B"<<endl; }
第十页,编辑于星期五:十三点 二十四分。
virtual ~B()
{ cout<<"Delete object of B"<<endl;
}
};
void main() {
A *pb=new B; pb->display();
第三页,编辑于星期五:十三点 二十四分。
பைடு நூலகம்
一、虚函数
如果在基类中说明了的虚函数,在它的派生类 中与基类中虚函数说明相同的函数一定是虚函数, 可以省略关键字virtual。但从程序的易读性出发, 最好不要省略派生类中重定义虚函数时的virtual关 键字。
第四页,编辑于星期五:十三点 二十四分。
一、虚函数
}
};
第五页,编辑于星期五:十三点 二十四分。
class China : public Country { public:
virtual void Display() {cout << "中国是我们伟大的祖国。
" << endl;} }; class America: public Country
} class Circle : public Shape {
public: Circle(double dfx = 0.0, double dfy = 0.0, double dr = 0.0) ; void Draw();
protected: double Radius; //圆的半径
};
第十六页,编辑于星期五:十三点 二十四分。
}; Shape::Shape(double dfx, double dfy) {
FirstX = dfx; FirstY = dfy;
}
第十三页,编辑于星期五:十三点 二十四分。
class Line : public Shape
{
public:
Line(double dfx = 0.0, double dfy = 0.0, double
第12章 多态类
多态是面向对象程序设计的又一大特征。多态性是指 发出同样的消息被不同类型的对象接收时产生完全不同 的行为,简单的说就是“一个接口,多种算法”。
第一页,编辑于星期五:十三点 二十四分。
第12章 多态类
要点: ➢ 虚函数的定义及使用方法 ➢ 纯虚函数及抽象类的基本概念 重点内容:
虚函数的定义及使用方法
谢谢观看
第十七页,编辑于星期五:十三点 二十四分。
cout<<"display B"<<endl;
{ 第七页,编辑于星期五:十三点 二十四分。
第十六页,编辑于星期五:十三点 二十四分。
public: #include<iostream.
virtual 函数类型 函数名(形参表)
virtual void Display() //虚函数 virtual void Display() //虚函数
pc->Display();
}
第七页,编辑于星期五:十三点 二十四分。
一、虚函数
2. 虚析构函数 析构函数是在该类对象消亡之前进行一些必要
的清理工作,对于动态绑定的虚函数必须用虚析构 函数进行释放。
第八页,编辑于星期五:十三点 二十四分。
一、虚函数
例12.2 虚析构函数应用举例。 #include<iostream.h> class A {
class China : public Country
double FirstX; //第一点x坐标
{ 第十页,编辑于星期五:十三点 二十四分。
2 虚析构函数应用举例。
0, double dfy = 0. 0, double dfy = 0.
cout << "世界上有很多国家。" << endl;
dsx = 0.0, double dsy = 0.0) ; void Draw();
protected:
double SecondX; //第二点x坐标 double SecondY; //第二点y坐标
};
第十四页,编辑于星期五:十三点 二十四分。
Line::Line(double dfx, double dfy, double dsx, double dsy) : Shape(dfx,dfy)
#include <iostream.h> class Shape
{ public:
Shape(double dfx = 0.0, double dfy = 0.0); virtual void Draw() = 0; //纯虚函数
protected: double FirstX; //第一点x坐标 double FirstY; //第一点y坐标
第二页,编辑于星期五:十三点 二十四分。
一、虚函数
1. 虚函数的定义格式
在一个类中用关键字virtual说明的成员函数称为虚函数,其定义的 格式如下:
virtual 函数类型 函数名(形参表) {
函数体 }
定义虚函数就是为了实现多态类。在基类中某个成员 函数被声明为虚函数后,这个成员函数通常要在派生类中 被重新定义,否则定义虚函数就没有意义。
{
public: virtual void Display() {cout << "美国和我们隔洋相对。" << endl;}
};
第六页,编辑于星期五:十三点 二十四分。
void main()
{
Country *pc,c;
America am; China ch; pc = &c; pc->Display(); pc = &am; pc->Display(); pc = &ch;
public: virtual void display()
{
cout<<"display A"<<endl; }
第九页,编辑于星期五:十三点 二十四分。
virtual ~A()
{
cout<<"Delete object of A"<<endl; }
};
class B:public A
{ public:
相关文档
最新文档