求图形的面积 类
1.定义类
#ifndef GRAPHDATA_H_
#define GRAPHDATA_H_
#include <stdio.h>
const double PI = 3.1415926;
class Graph
{
public:
Graph();
virtual ~Graph();
public:
double GetArea();
protected:
double mArea;
};
inline double Graph::GetArea()
{
return mArea;
}
class Circle:public Graph
{
public:
Circle();
virtual ~Circle();
public:
void SetRadious(double dRadious);
double GetRaious();
private:
double mRadious;
};
inline double Circle::GetRaious()
{
return mRadious;
}
class Rectangle:public Graph
{
public:
Rectangle();
virtual ~Rectangle();
public:
void SetWH(double dWidth, double dHeight);
double GetWidth();
double GetHeight();
private:
double mWidth;
double mHeight;
};
inline double Rectangle::GetWidth()
{
return mWidth;
}
inline double Rectangle::GetHeight()
{
return mHeight;
}
#endif
实现类:
#include "GraphData.h"
Graph::Graph()
{
mArea = 0.0;
}
Graph::~Graph()
{
}
Circle::Circle()
{
}
Circle::~Circle()
{
mRadious = 0.0;
}
void Circle::SetRadious( double dRadious )
{
mRadious = dRadious;
mArea = PI*dRadious*dRadious;
}
Rectangle::Rectangle()
{
mHeight = 0.0;
mWidth = 0.0;
}
Rectangle::~Rectangle()
{
}
void Rectangle::SetWH( double dWidth, double dHeight )
{
mHeight = dHeight;
mHeight = mWidth;
mArea = mWidth*mHeight;
}
3.调用类
// Graph.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "GraphData.h"
int _tmain(int argc, _TCHAR* argv[])
{
Circle* pCircle = new Circle;
double dArea = pCircle->GetArea();
pCircle->SetRadious(2.5);
dArea = pCircle->GetArea();
Rectangle* pRect = new Rectangle;
dArea = pRect->GetArea();
pRect->SetWH(3,2);
dArea = pRect->GetArea();
return 0;
}