参考代码如下:
//////////////////////////////////////////////////////////////////////////////
//类定义
class CPolygon
{
public:
CPolygon(int num);
virtual ~CPolygon();
float GetArea(); //取得面积
BOOL SetPoint(int point,float x,float y);//设置第point个点的坐标
private:
BOOL Check(); //检查是否有数据没有设置
int pCount; //边数,也就是顶点数
float *px; //顶点x的数组
float *py; //顶点y的数组
BYTE *pv; //设置数据标志
};
//////////////////////////////////////////////////////////////////////////////
//类实现
CPolygon::CPolygon(int num)
{
if(num<3) //至少是三角形
{
px=NULL;
py=NULL;
pv=NULL;
pCount=0;
}
else
{
px=new float[num]; //按num开辟内存
py=new float[num];
pv=new BYTE[num];
memset(px,0,sizeof(float)*num);//初始化内存
memset(py,0,sizeof(float)*num);//初始化内存
memset(pv,0,sizeof(BYTE)*num); //初始化内存
pCount=num;
}
}
CPolygon::~CPolygon() //用完要回收开辟的内存
{
if(px) delete []px;
if(py) delete []px;
if(pv) delete []px;
px=NULL;
py=NULL;
pv=NULL;
}
BOOL CPolygon::SetPoint(int point,float x,float y)
{
if(point>=0&&point
*(px+point)=x;
*(py+point)=y;
*(pv+point)=1; //置1,表示数据已经设置过了
return TRUE;
}
return FALSE;
}
BOOL CPolygon::Check() //检查合法性
{
if(pCount==0)
return FALSE;
for(int i=0;i
if(*(pv+i)==0)
return FALSE;
}
return TRUE;
}
float CPolygon::GetArea();
{
if(Check()) //如果数据准备好
{
//计算结果
//返回结果
}
return 0.0; //数据没准备好就返回0.0
}
//////////////////////////////////////////////////////////////////////////////
//类调用,以三角形为例
CPolygon xObject(3); //定义一个三角形
xObject.SetPoint(0,20.2,30.3); //设置第一点的值
xObject.SetPoint(1,80.4,50.5); //设置第二点的值
xObject.SetPoint(2,70.6,40.7); //设置第三点的值
float Result=xObject.GetArea();
CString Info;
if(Result==0.0)
Info="计算有错误,请检查设置的点是否正确!";
else
Info.Format("三角型的值是:%f",Result);
MessageBox(Info); //显示结果
定义的类型不对
private:
int (*a)[N];
public:
Time() {
a = new int[N][N];
}