Błąd w plikach nagłówkowych

Błąd w plikach nagłówkowych
FJ
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:6
0

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

IObject.h

Kopiuj
 
#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

Kopiuj
 
#include "IObject.h"

//definicje metody
*/

Button.h

Kopiuj
#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

Kopiuj
#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ć?

edytowany 1x, ostatnio: FJack
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Szczecin
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


twonek
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 2 lata
  • Postów:2500
5

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

FJ
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:6
0

Wielkie dzięki!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.