📄 619.cpp
字号:
//用下面程序619.cpp为例来说明。在程序中定义一个Shape类(形状),设计一个dispArea()-计算并显示面积的接口。Shape类本身是抽象的,由它派生的Triangle(三角形)类,Rectangle(矩形)类, Circle类是具体的。setData()是一个成员函数,是设定二个坐标(x,y)的参数,它对所有派生类是相同的。dispArea()要设计成虚函数,它在基类中不需要做任何工作,在程序中,显示出一些信息以表示调用了本版本,在Triangle派生类和Rectangle派生类中因计算方法不同,所以有各自的实现版本。而接口是一样的。
/*
619.cpp
Written By S.Y.Feng
demo virtual function in class Shape
class:
Shape
Triangle
Rectangle
Circle
*/
#include <iostream.h>
class Shape
{
protected: double x,y;
public:
void setData(double i,double j=0){ x=i; y=j; }
virtual void dispArea(void)=0;
};
class Triangle:public Shape //三角形
{
public:
void dispArea(void)
{ cout <<"三角形面积: "; cout << x*0.5*y << "\n"; }
};
class Rectangle:public Shape // 矩形
{
public:
void dispArea(void)
{ cout <<"矩形面积: "; cout << x*y << "\n"; }
};
class Circle:public Shape //圆形
{
public:
void dispArea(void)
{ cout <<"圆形面积: "; cout << 3.14159*x*x << "\n";}
};
main(void)
{
Shape *pShape; // create a pointer to base type
Triangle t; // create objects of derived types
Rectangle r;
Circle c;
pShape=&t;
pShape->setData(10.0,10.0);
pShape->dispArea( );
pShape=&r;
pShape->setData(100.0,5.0);
pShape->dispArea( );
pShape=&c;
pShape->setData(10.0);
pShape->dispArea( );
return 0;
}
/*-
三角形面积: 50
矩形面积: 500
圆形面积: 314.159
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -