我对编程有点新,并且在函数头文件中遇到跟踪函数原型的这些错误,我认为它可能与它所获得的指针数组有关。
错误变量或字段'clean_up'声明为void
错误'Button'未在此范围内声明
错误'按钮'未在此范围内声明
错误预期在']'标记
之前的主要变量 //Function.h
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <string>
#include "functions.h"
#include "globals.h"
#include "Button.h"
#include <fstream>
void clean_up( Button *buttons[] ); // errors here
//Function.cpp
void clean_up( Button *buttons[] )
{
SDL_FreeSurface( background );
SDL_FreeSurface( X );
SDL_FreeSurface( O );
for( int t = 0; t < TOTAL_BUTTONS; t++ )
{
delete buttons[ t ];
}
SDL_Quit();
}
//Button.h
class Button
{
private:
SDL_Rect box;
SDL_Surface *sprite;
public:
bool in_use;
bool xoro;
int p_id;
Button( int x, int y, int id );
~Button();
void handle_events();
void show();
};
//Button.cpp
Button::Button( int x, int y, int id )
{
box.x = x;
box.y = y;
box.w = 120;
box.h = 120;
in_use = false;
p_id = id;
}
Button::~Button()
{
SDL_FreeSurface( sprite );
}
我不确定在哪里寻找解决方案,所以感谢任何帮助。感谢。
答案 0 :(得分:1)
尝试在.h文件中添加类Button的前向声明。
Function.h
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <string>
#include "functions.h"
#include "globals.h"
#include "Button.h"
#include <fstream>
class Button;
void clean_up( Button *buttons[] );
答案 1 :(得分:0)
我想这个类应该在函数声明/定义之前声明。
答案 2 :(得分:0)
Function.h包含太多头文件。它只取决于Button。
所以只包括Button.h。甚至更好,只需向前声明类Button;
这将删除function.h中的问题,但它可能会弹出其他地方。
作为一种心理猜测,你错过了一个;或某个地方。