⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 619.cpp

📁 C++实训教程
💻 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 + -