虚函数的例子。
#include <iostream.h>
class figure { //定义一个公共基类
protected:
double x,y;
public:
figure(double a, double b) { x=a; y=b; }
virtual void show_area() //定义一个虚函数,作为界面接口
{ cout<<"No area computation defined for this class./n"; }
};
class triangle:public figure{ //定义派生类三角形
public:
triangle(double a, double b):figure(a,b) { };
void show_area() //虚函数重新定义,求三角形的面积
{ cout <<"三角形的高="<< x <<" 三角形的底="<<y<<endl;
cout<<"三角形的面积="<< x*y*0.5<<endl;
}
};
class square:public figure{ //定义派生类矩形
public:
square(double a, double b):figure(a,b) { };
void show_area() //虚函数重新定义,求矩形的面积
{ cout <<"矩形的长="<< x <<" 矩形的宽="<<y<<endl;
cout<<"矩形的面积="<< x*y<<endl;
}
};
class circle:public figure{ //定义派生类圆
public:
circle(double a):figure(a,a) { };
void show_area() //虚函数重新定义,求圆的面积
{ cout <<"圆的半径="<< x;
cout<<" 圆的面积="<< x*x*3.1416<<endl;
}
};
void main()
{ figure *p; //定义基类的指针 p
triangle t(10.0,6.0); //定义三角形类对象 t
square s(10.0,6.0); //定义矩形类对象 s
circle c(10.0); //定义圆类对象 c
p=&t;
p->show_area(); //计算三角形面积
p=&s;
p->show_area(); //计算矩形面积
p=&c;
p->show_area(); //计算圆面积
}
纯虚函数的例子。
#include<iostream.h>
class circle{
protected:
int r;
public:
void setr(int x) {r=x;}
virtual void show( )=0; //纯虚函数
};
class area:public circle {
public:
void show ( ) //重新定义虚函数 show ( )
{cout<<"面积是:"<< 3.14* r* r<<endl;}
};
class perimeter:public circle{
public:
void show ( ) //重新定义虚函数 show ( )
{cout<<"周长是:"<<2*3.14*r<<endl;}
};
void main( )
{ circle *ptr;
area ob1; perimeter ob2;
ob1.setr(10); ob2.setr(10);
ptr=&ob1; ptr->show( );
ptr=&ob2; ptr->show( );
}
纯虚函数 注意有红色的部分
最新推荐文章于 2024-11-10 00:02:38 发布