#include<iostream>
using namespace std;
class CPolygon { //base class
protected:
int width, height;
public:
void set_values (int a, int b)//set value
{ width=a; height=b; }
virtual int area (void) =0;//define a virtual function其功能是为派生类提供一个功能接口
};
class CRectangle: public CPolygon// derived class from CPolygon class
{
public:
int area (void) //在派类长方形中定义 area 的具体功能
{ return (width * height); }
};
class CTriangle: public CPolygon
{
public:
int area (void)//在派生类三角形中重新定义 area 的功能
{ return (width * height / 2); }
};
int main ()
{
// CPolygon obj; //错误,因为有纯虚函数的类是抽象类,抽象类无法实例化一个对象
CRectangle rect;
CTriangle trgl;
CPolygon * ppoly1 = ▭//可以定义抽象类的指针,该指针可以用来指向派生类对象的成员
CPolygon * ppoly2 = &trgl;
ppoly1->set_values (6,5);
ppoly2->set_values (6,5);
cout << ppoly1->area() << endl;
cout << ppoly2->area() << endl;
return 0;
}
C/C++ 虚函数
最新推荐文章于 2022-07-07 21:29:29 发布