虚函数的调用
来源:互联网 发布:mp3歌曲批量下载软件 编辑:程序博客网 时间:2024/06/10 07:38
设计基类clrcle(),定义成员函数area(),用来求圆的面积。然后有circle派生出球的类globle和圆柱体的类cylinder,并在两个派生类中的定义成员函数area(),用来求圆柱和球的表面积
#include<iostream.h>
const doublep=3.14;
class circle
{
protected:
double r;
public:
circle(){}
circle(double rr){r=rr;}
virtual double area() //基类中的虚函数
{
return p*r*r;
}
virtual void display() //基类中的虚函数
{
cout<<"圆的半径为"<<r<<endl;
}
};
classgloble:public circle
{
public:
globle(double rr):circle(rr){}
virtual double area() //派生类中的虚函数与基类中的虚函数有不同的实现
{
return 4*p*r*r;
}
virtual void display()//派生类中的虚函数与基类中的虚函数有不同的实现
{
cout<<"球的半径为"<<r<<endl;
}
};
classcylinder:public circle
{
protected:
double h;
public:
cylinder(){}
cylinder(double rr,double hh):circle(rr)
{
h=hh;
}
virtual double area() //派生类中的虚函数与基类中的虚函数有不同的实现
{
return 2*p*r*r+2*p*r*h;
}
virtual void display()//派生类中的虚函数与基类中的虚函数有不同的实现
{
cout<<"圆柱体的地面半径为"<<r<<"高为"<<h<<endl;
}
};
void fun(circle&c)
{
c.display();
}
void main()
{
circle cir(2),*p;
globle glo(3);
cylinder cyl(4,2);
cout<<"通过对象来调用相应的虚函数"<<endl; //这样的调用不会实现多态性
cir.display();
cout<<"圆的面积"<<cir.area()<<endl;
glo.display();
cout<<"球的表面积"<<glo.area()<<endl;
cyl.display();
cout<<"圆柱体的表面积"<<cyl.area()<<endl;
cout<<"通过引用和指针来调用相应的虚函数"<<endl; //实现多态性
fun(cir);
p=○
cout<<"圆的面积"<<p->area()<<endl;
fun(glo);
p=&glo;
cout<<"球的表面积"<<p->area()<<endl;
fun(cyl);
p=&cyl;
cout<<"圆柱体的表面积"<<p->area()<<endl;
}
- 虚函数的调用
- 虚函数的调用
- 虚函数的调用
- 虚函数的调用
- 虚函数的调用
- 虚函数的调用
- C++虚函数的调用
- 虚函数的系统调用
- 调用私有的虚函数
- C++虚函数的调用
- 纯虚函数的调用
- 纯虚函数的调用
- 虚函数的实调用与虚调用
- C++多态性:虚函数的调用原理
- 多重继承下的虚函数调用
- C++虚函数调用的汇编过程
- C++多态性:虚函数的调用原理
- 证明下虚函数的调用问题
- Hibernate中one-to-many的基本操作
- 怎么才能少奋斗10年
- PDF相关的工具
- c++复习题 看了肯定挂科
- AlarmManager类的应用(实现闹钟功能)
- 虚函数的调用
- 花生壳+tomcat+javaweb项目的部署问题
- 虚基类和派生类的函数调用
- Node Manager管理总结
- QTcpSocket通信乱码解决方法
- jquery实现页面局部刷新
- Spring 配置文件 属性 参数
- 【redhat5.5】手工创建一个系统用户
- 高仿android通讯录