Header file probleem

Status
Niet open voor verdere reacties.

manhaeve5

Gebruiker
Lid geworden
9 jan 2007
Berichten
276
Ik heb dit:
"player.h" en "enemy.h"
in "player.h" staat er
Code:
#include "enemy.h"
in "enemy.h" staat er
Code:
#include "player.h"
Hoe moet ik dit oplossen want dit geeft een error
 
maak een .cpp en voeg beide daar in en schrijf daar je code
 
ik heb iets raars ontdekt:
hier is mijn header van de class potion:
Code:
#ifndef POTION_H
#define POTION_H
#include "player.h"
using namespace std;

class potion
{
      public:
      char type;
      int ammount;
      potion(char gettype,int getammount);
      void drink(player *player1);
};
#endif
maar als ik van enemy.h
Code:
#include "potion.h"
doe
dan krijg ik deze error
variable or field 'drink' is declared void
 
Laatst bewerkt:
vervang " void drink(player *player1);"
door " void potion::drink(player *player1);"

ook mag je je namespace weglaten in headers omdat je daar toch geen commands gebruikt
 
als drink in de class potion staat is het toch overbodig om er potion:: voor te zetten?
En ik dacht dat namespace std nodig is om classes te laten werken
Volgens mij light het probleem er aan dat hij de player class niet vind
 
Laatst bewerkt:
Als je twee klassen hebt die elkaar nodig hebben gebruik je:

Code:
class player;

class enemy {
...
...
...
};

en dan

class player {
...
...
...
};
 
ohja op die manier. je kunt dan altijd overwegen om een template class te maken. de subclasses bevatten dan alle vars/funcs die deze class bevat. je kan daarna een subclass maken die al die dingen bevat met een aantal extra dingen erbij
 
als je wilt dat de functie alleen voor die classe geldig is wel potion:: ervoor anders word het een globale functie. als class bedoel ik dit:

Code:
struct my2dpoint
{
int x, y;
}
struct my3dpoint : public my2dpoint
{
int z;
}
ze noemen het overerving en je hebt alleen toegang tot de public leden in de template classe
structs zijn standaard public dus als je een classe gebruikt moet je er public: voor zetten

ook kun je nog friend items maken maar dat zou ik voor je op moeten zoeken hoe die werken
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan