为了学习贪吃蛇程序,我创建了一个MFC单文档类型,然后添加ellipse.h的头文件,里面有一个CEllipse类
class CEllipse
{
public:
CEllipse();
void SetPercentPoint();
void DrawEllipse();
int m_i,len;
RECT pt[20];
};
然后添加了一个ellipsse.cpp的源文件,代码如下
#include "stdafx.h"
#include "ellipse.h"
#define down 1
#define up 2
#define left 3
#define right 4
CEllipse::CEllipse()
{
len=4;
m_i=0;
}
void CEllipse::SetPercentPoint()
{
int k;
if(m_i>=down && m_i<=right)
{
for(k=1;k<len;k++)
{
pt[k].left=pt[k-1].left;//这一行会出现error C2059: syntax error : 'constant'
//pt[k].right=pt[k-1].right; 为了方便我把下面三行注释掉了
//pt[k].bottom=pt[k-1].bottom;
//pt[k].top=pt[k-1].top;
}
}
}
上面是一部分代码,从这个地方如果编译会出如下错误error C2059: syntax error : 'constant'
,但如果在头文件中加入一个point结构体如下
struct point
{
int x;
int y;
};
class CEllipse
{
public:
CEllipse();
void SetPercentPoint();
void DrawEllipse();
int m_i,len;
point pt[20];
};
然后添加了一个ellipsse.cpp的源文件,代码如下
#include "stdafx.h"
#include "ellipse.h"
#define down 1
#define up 2
#define left 3
#define right 4
CEllipse::CEllipse()
{
len=4;
m_i=0;
}
void CEllipse::SetPercentPoint()
{
int k;
if(m_i>=down && m_i<=right)
{
for(k=1;k<len;k++)
{
pt[k].x=pt[k-1].x; }
}
}
则不会出任何错误
小弟不知道错误的原因在哪,都同为结构体,为什么自己定义的可以用,系统自己定义的RECT结构体一用就出错呢
[此贴子已经被作者于2007-7-21 13:37:05编辑过]