最近在自学C++,主要是学习C++中的面向对象的编程,看了一下面向对象的的三大特性:封装性、继承性和多态性。但感觉要深刻理解还是要自己练习一下。下面提供的代码实现的是利用抽象类显示图形的周长和面积,这里的图形我只列举了圆、三角形和长方形,添加其他图形只需要继续添加shape的派生类就好。
这里的父类shape是一个抽象类,提供接口,其中:
getdata():用于输入图形的信息,对于圆需要输入半径;对于三角形需要输入三条边长;对于长方形则需要输入长和宽。
circumference():用于得到各个图形的周长。
area():用于计算各个图形的面积。
print():用于输出周长和面积。
源程序如下所示:
#include "stdafx.h"
#include <iostream>//编译预处理命令,输入输出流文件
#include <fstream>
#include <iomanip>
#include <math.h>
#include <string.h>
#include <strstream>
using namespace std;
class shape
{
public:
virtual void getdata()=0;
virtual double circumference()=0;
virtual double area()=0;
virtual void print()=0;
};
class circle:public shape
{
double r;
public:
circle(double i=0)
{r=i;}