ex_virtualfunc.cpp

来自「虽然是一个小小的例子,却是基本上包括了C++多态的含义!是很好的学习材料」· C++ 代码 · 共 42 行

CPP
42
字号
#include<iostream.h>
class CShape
{
public:
	virtual float area()
	{  return 0.0; }
};
class CTriangle:public CShape
{
public:
	CTriangle(float h,float w)
	{  High=h; Width=w; }
	float area()
	{  return (float)(High*Width*0.5);}
private:
	float High,Width;
};
class CCircle:public CShape
{
public:
	CCircle(float r)
	{  R=r; }
	float area()
	{  return (float)(3.14159*R*R);}
private:
	float R;
};

void main()
{
	CShape *s[2],a,*p1;
	CTriangle  tri(8,6);
	cout<<"a area is: "<<a.area()<<endl;
	s[0]= new CTriangle(3,4);
	cout<<"s[0] area is: "<<s[0]->area()<<endl;
	s[1]= new CCircle(1);
	cout<<"s[1] area is: "<<s[1]->area()<<endl;

	p1=&tri;
	cout<<"tri area is: "<<tri.area()<<endl;
	cout<<"p1 area is: "<<p1->area()<<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?