【发布时间】:2010-07-28 19:31:46
【问题描述】:
也许你可以帮我解决这个问题。 我有一个用于画圆的类,但编译器向我发送了这条消息:
In file included from ./Includes.h:19,
from ./Circle.h:8,
from ./Circle.cpp:5:
./GameApp.h:24: error: ISO C++ forbids declaration of 'Circle' with no type
./GameApp.h:24: error: expected ';' before '*' token
这里是 GameApp.h:
#include "Includes.h"
class GameApp {
public:
GameApp();
~GameApp();
void Render();
protected:
void InitGU();
bool Controls();
void *dList; // display List, used by sceGUStart
void *fbp0; // frame buffer
Circle* circle;
};
Include.h 看起来像这样:
//************************************************************************
// Includes.h
//************************************************************************
#include <malloc.h> //For memalign()
#include <pspkernel.h>
#include <pspdisplay.h>
#include <pspdebug.h>
#include <stdio.h>
#include <psprtc.h> // for the timer/fps functions
#include <pspctrl.h>
#include <math.h>
// GU
#include <pspgu.h>
#include <pspgum.h>
// Custom
#include "GameApp.h"
#include "Circle.h"
//************************************************************************
// Definitions
#define BUF_WIDTH (512)
#define SCR_WIDTH (480)
#define SCR_HEIGHT (272)
#define sin_d(x) (sin((x)*M_PI/180))
#define cos_d(x) (cos((x)*M_PI/180))
#define tan_d(x) (tan((x)*M_PI/180))
//************************************************************************
// structs, datatypes...
#ifndef VERTEX_TYPE_
#define VERTEX_TYPE_
typedef struct {
unsigned int color;
float x, y, z;
} vertex;
#endif
还有 Circle.h
//************************************************************************
// Circle.h
//************************************************************************
#ifndef CIRCLE_H_
#define CIRCLE_H_
#include "Includes.h"
class Circle {
public:
Circle(float r1);
~Circle();
void Render();
float r;
float x, y;
float vx, vy;
protected:
vertex* vertices;
int n;
};
#endif
【问题讨论】:
-
我删除了 C 标签。把C放在这样的问题上是非常荒谬的。而且,这门课也没什么问题。看看实际代码会很有用。
-
GameApp.h 是否包含在 Includes.h 中?你的标题有包含保护吗?你有循环包含问题吗?
-
你确定你的 Circle.h 是一个有效的头文件——你使用它成功地编译了一些东西吗?也许您忘记了类声明末尾的分号?
-
这至少有助于查看包含
Circle类定义的代码。 -
请发布 Circle.h 。并在您的任何包含文件中查找不匹配的 }。