在头文件中的函数原型中获取指针数组:函数声明为void

时间:2012-12-18 03:59:11

标签: c++

我对编程有点新,并且在函数头文件中遇到跟踪函数原型的这些错误,我认为它可能与它所获得的指针数组有关。

错误变量或字段'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 );
}

我不确定在哪里寻找解决方案,所以感谢任何帮助。感谢。

3 个答案:

答案 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中的问题,但它可能会弹出其他地方。

作为一种心理猜测,你错过了一个;或某个地方。