Błąd w plikach nagłówkowych

0

Witam, mam problem, najsampierw chciałbym pokazać kod:

IObject.h

 
#ifndef IOBJECT_H
#define IOBJECT_H
#include "Button.h"

enum menu
{
	game
};

struct IObject
{
	//Menu Game(Color::White);
	menu menu_type = menu::game;
	bool enabled = true; //set active in start of game

	void SetActive(bool enable);
	//void SendToMenu(Button sender);
};
#endif

IObject.cpp

 
#include "IObject.h"

//definicje metody
*/

Button.h

#ifndef BUTTON_H
#define BUTTON_H
#include <vector>
#include "SFML\Graphics.hpp"

#include "IObject.h"
#include "IVisual.h"
#include "IColorable.h"

#include "ButtonEvent.h"

using namespace std;
using namespace sf;

struct IObject;

class Button : public IObject, public IVisual, public IColorable //błąd
{
	//metodu i zmienne
};

vector<Button> GetButtons();
#endif 

 

Button.cpp

#include "Button.h"

//definicje metod
 

Mam błędy typu: bazowa klasa IObject jest niezdefiniowana w button.h w linii 17,
a gdy chcę się odnieść do składowej enabled wyskakuje że klasa button nie posiada składniowej 'enabled' o co może chodzić?

3

W IObject.h z jakiegoś niezrozumiałego powodu inkludujesz Button.h. Dzięki temu zabiegowi Button.h jest rozwijane w tym miejscu, jeszcze przed definicją klasy IObject

5

Poza tym nie używaj using namespace w plikach nagłówkowych.

0

Wielkie dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1