Problem, tror nok det er noget med en pointer :S

Tags:    c++

Jeg er igang med, at lave et tekst beseret kryds og bolle spil. I programmet har jeg 3 klasser. En Game klasse, en Board klasse og en Player klasse.

Game klassen indeholder et Board object ved navn board, og en Player vector bestående af to players. Da Player klasserne skal kunne ændre i board'et har de en pointer til en board klasse. Player'nes Constructor tager en Board pointer som argument. Den board pointer bliver så kopieret over i Player'nes Board pointer.

Her er noget kode(det er kun den del der har med problemet at gøre jeg poster):
Player.h
Fold kodeboks ind/udKode 

Player.cpp
Fold kodeboks ind/udKode 

Game.h
Fold kodeboks ind/udKode 

Game.cpp
Fold kodeboks ind/udKode 


Problemet er nu, at når jeg i player klassen kalder:
Fold kodeboks ind/udKode 


Får jeg fejlen: invalid type argument of `unary *'
I linjen med while lykken.

Har ingen ide om hvad problemet er, vis i skal bruge mere kode så sig til :D

På forhånd tak.



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Som jeg forklarede i en anden tråd skal du nok forsøge at undgå denne konstruktion:
board->placePiece(readInt(), readInt(), piece))

Problemet er de to gange readInt, det er uforudsigeligt hvilken der bliver kaldt først, og du kan dermed ikke vide om den første int der læses er den ene eller den anden.

Ja, du bør nok hellere skrive noget i retning af:
Fold kodeboks ind/udKode 




Fjern * fra din while løkke...



hmmm.. tak.. Det var sgu da enlig ikk så svært :D



Som jeg forklarede i en anden tråd skal du nok forsøge at undgå denne konstruktion:
board->placePiece(readInt(), readInt(), piece))

Problemet er de to gange readInt, det er uforudsigeligt hvilken der bliver kaldt først, og du kan dermed ikke vide om den første int der læses er den ene eller den anden.



Som jeg forklarede i en anden tråd skal du nok forsøge at undgå denne konstruktion:
board->placePiece(readInt(), readInt(), piece))

Problemet er de to gange readInt, det er uforudsigeligt hvilken der bliver kaldt først, og du kan dermed ikke vide om den første int der læses er den ene eller den anden.

Ja, du bør nok hellere skrive noget i retning af:
Fold kodeboks ind/udKode 

Det var netop det jeg syntes var grimt, men bertel skrev hvordan man kunne gøre det i en anden tråd.



Nej, det kunne man netop IKKE gøre!



Hvorfor er det dog grimt? Det er da smuk syntax.. :)



Som jeg har forklaret et par gange kan du aldrig vide hvilken af de to readInt der bliver udført først, så brugeren har ikke nogen chance for at vide hvad han bliver spurgt om.

At en syntax er smuk er rart, men hvis ikke den virker er det sådan set ligegyldigt.



t