Dom probleem van compiler

Status
Niet open voor verdere reacties.

manhaeve5

Gebruiker
Lid geworden
9 jan 2007
Berichten
276
Hier is mijn code:
Code:
#ifndef BOOT_H
#define BOOT_H

#include <vector>
#include "veld.h"
using namespace std;

class boot{
public:
boot(char let,int size);         
bool setposition(veld &veld1,int pos,int mode);   
bool isdead(veld veld1);
vector<int> plaatsen;
private:
int groote;
char letter;
int plaats;
};

#endif
en ik kijg de error:
Code:
expected ';' before '(' token
Mijn colmpiler is Dev-Cpp
 
deze twee:
Code:
bool setposition(veld &veld1,int pos,int mode);   
bool isdead(veld veld1);
 
Er gaat iets mis bij het type veld..

Ik gebruik ook Dev-C++ en dit compilet gewoon bij mij:
Code:
#ifndef BOOT_H
#define BOOT_H

#include <vector>

using namespace std;

class veld
{
};

class Boot
{
    public:
        Boot(char let, int size);
        bool SetPosition(veld &veld1, int pos, int mode);
        bool IsDead(int veld1);
        vector<int> plaatsen;
    private:
        int grootte;
        char letter;
        int plaats;
};

#endif
 
ik weet niet wat veld.h is en ik heb geen main() functie dus of het werkt weet ik niet :p
maar hij compilet wel
 
moet ik anders heel m'n project eens doorsturen?
 
Laatst bewerkt:
schrijf in plaats van #include "veld.h" dit eens?
Code:
class veld;

Ik ken je projectcode niet, maar waarschijnlijk hoef je veld.h enkel te includen in boot.cpp.

--Johan
 
In boot.h declareer je een klasse waarin een klasse zit die in veld.h gedeclareerd is, en in veld.h declareer je een klasse met een klasse die in boot.h is gedeclareerd..

Ik denk dat het daar fout gaat.. Als de compiler eerst boot.h compiled kent hij de klasse veld nog niet en als hij veld.h eerst compiled kent hij de klasse boot nog niet

Ik weet niet zo goed hoe het allemaal gaat maar ik denk dat daar de fout zit

En btw, de manier waarop jij je code schrijft is echt een zooitje :p
 
Ieder z'n eigen stijl :p
Maar in veld.h do ik toch ook:
Code:
#includ e"boot.h"
 
Manhaeve,

ik kan erin komen dat ieder zijn eigen programmeerstijl heeft... maar tabs en enters kunnen echt wel helpen als anderen je code eens moeten doorlezen :eek:

een deel van je problemen ligt net aan het gebruik van #include in je headers.
Wat gebeurt er bij #include?
De regel waar include staat wordt gewist en vervangen door het bestand dat je include, in jouw project zou dit een oneindige lus geven: in veld wordt boot geplakt, terwijl boot wordt ingevoegd komt ie include veld tegen, in boot wordt veld geplakt, tijdens het plakken van veld komt ie include boot tegen, .... (you get the picture)

Ik heb nog een aantal optimalistaties doorgevoerd, project is hier te vinden.

Dit werkt nog niet, er zitten errors in het gebruik van vectoren, maar die laat ik je zelf even uitpluizen.

Denk er ook aan dat het gebruik van publieke datamembers helemaal niet aan te raden is, ook al gebruik je constant getters en setters...

--Johan
 
Hartelijk bedankt voor de moeite.
maar in boot.h gebruik ik toch dit:
Code:
bool setposition(veld &veld1, int pos, int mode);
Is het dan niet nodig om die header file te includen?
 
Code:
bool setposition(veld &veld1, int pos, int mode);
alles wat de compiler hier moet weten is dat het eerste argument van het type (referentie naar) veld is. Daarom hoeft ie niet te weten hoe een veld eruit ziet, of wat het kan, enkel dat dat type bestaat.
En zeggen dat een type bestaat, doe je door het te definiëren
Code:
class veld;

Slimmer hoeft die compiler echt niet te zijn :rolleyes:
--Johan
 
ik kan erin komen dat ieder zijn eigen programmeerstijl heeft... maar tabs en enters kunnen echt wel helpen als anderen je code eens moeten doorlezen :eek:

Of als je zelf na een tijdje nog eens het project moet doornemen. :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan