【考研c++】虚函数

≯℡__Kan透↙ 提交于 2019-11-27 03:37:54
#include<iostream>
using namespace std;
class Figure{
	public:
		Figure(double a,double b){
		
			x = a;
			y = b;
		}
		virtual void area(){
			cout<<"在基类中定义 virtual function";
			cout<<"为派生类提供一个公共接口,";
			cout<<"以便派生类根据需要重新定义虚函数"<<endl; 
		}
	protected:
		double x,y;
	
};

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;
		cout<<",面积是"<<x*y<<endl; 
	}
}; 
class Circle:public Figure{
	public:
	Circle(double a):Figure(a,a){	
	}
	void area(){
		cout<<"圆的半径是"<<x;
		cout<<",面积是"<<3.14159*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;
}

	三角形的高是10,底是 6,面积是30
	正方形的高是10,底是 6,面积是60
	圆的半径是10,面积是314.159
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!