欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

虚函数的定义 2 - 虚函数的例子

最编程 2024-04-14 09:51:02
...
例 8:应用 C++ 的多态性,计算三角形、矩形和圆的面积。
#include<iostream>
using namespace std;
class Figure{	//定义一个公共基类 
	protected:
		double x,y;
	public:
		Figure(double a,double b){
			x=a;
			y=b;
		}
		virtual void area(){	//定义一个虚函数,作为界面接口 
			cout<<"在基类中定义的虚函数,";
			cout<<"为派生类提供一个公共接口,";
			cout<<"以便派生类根据需要重新定义虚函数。";
		}
};
class Triangle:public Figure{	//定义三角形派生类 
	public:
		Triangle(double a,double b):Figure(a,b){ 	//构造函数 
		}
		void area(){	//虚函数重新定义,用作求三角形的面积 
			cout<<"三角形的高是:"<<x<<",底是:"<<y;
			cout<<",面积是:"<<0.5*x*y<<endl;
		}
};
class Square:public Figure{
	public:
		Square(double a,double b):Figure(a,b){
		}
		void area(){	//虚函数重新定义,用作求矩形的面积 
			cout<<"矩形的长是:"<<x<<",宽是:"<<y<<",面积是:"<<x*y<<endl; 
		}
};
class Circle:public Figure{		//定义圆派生类
 	public:
 		Circle(double a):Figure(a,a){
		 }
		 void area(){
		 	cout<<"圆的半径是:"<<x<<",面积是:"<<3.1416*x*x<<endl;
		 }
};
int main(){
	Figure *p;
	Triangle t(10.0,6.0);
	Square s(10.0,6.0);
	Circle c(10.0);
	p=&t;
	p->area();
	p=&s;
	p->area();
	p=&c;
	p->area();
	return 0;
}

运行结果:
在这里插入图片描述

推荐阅读