im trying to create a fruit machine and ive got all my coding and it compiles ok but on build i get the following errors:
Linking...
Game.obj : error LNK2001: unresolved external symbol "public: int __thiscall GAME::getHoldRequest(void)" (?getHoldRequest@GAME@@QAEHXZ)
Game.obj : error LNK2001: unresolved external symbol "public: int __thiscall GAME::checkForWin(void)" (?checkForWin@GAME@@QAEHXZ)
Main.obj : error LNK2001: unresolved external symbol "public: void __thiscall GAME::play(void)" (?play@GAME@@QAEXXZ)
Debug/Fruit Game.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

Fruit Game.exe - 4 error(s), 0 warning(s)

also when i try to view the function via the class view i get:
cannot find the definition (implementation) of this function.

here is my code and if u can figure out what ive done wrong it'll be much appreciated:
HEADER FILES:

// Class Game header file //

//Disabling the warning 4305 which is harmless
#ifdef WIN32
#pragma warning( disable : 4305)
#endif


class GAME
{
public:
void addCredit();
bool gamble();
int getHoldRequest();
int checkForWin();
void play();
int symbol1;
int symbol2;
int symbol3;
private:
int credit;
int line;
int winAmount;
bool reel1Hold;
bool reel2Hold;
bool reel3Hold;
bool holding;
};

// Class Random Number file //

class RANDOMNUMBER
{
public:
int randomNumber();
int generateNumber();
private:
int ran;
};

// Class Reel header file //

class REEL
{
public:
int spin();
int getCurrentSymbol();
private:
int currentSymbol;
};

these are my cpp files

// Implementing the reel.h file into reel.cpp //

#include "Reel.h"
#include "RandomNumber.h"
#include "Game.h"
#include <ctime>
#include <cstdlib>
#include <iostream>

using namespace std;

// Construction/Destruction //

int REEL::spin()
{
RANDOMNUMBER rand;
currentSymbol = rand.generateNumber();
return currentSymbol;
}

int REEL::getCurrentSymbol()
{
return spin();
}

//Implementing the Random Number.h file into RandomNumber.cpp //

#include "Reel.h"
#include "RandomNumber.h"
#include "Game.h"
#include <ctime>
#include <cstdlib>
#include <iostream>

using namespace std;

// Construction/Destruction//

int RANDOMNUMBER::randomNumber()
{
ran = (rand() % 9) + 1;
return ran;
}

int RANDOMNUMBER::generateNumber()
{
return randomNumber();
}

// Implementing the game.h file into game.cpp //

#include "Reel.h"
#include "RandomNumber.h"
#include "Game.h"
#include <ctime>
#include <cstdlib>
#include <iostream>

using namespace std;

//Construction/Destruction//

void GAME::addCredit()
{
credit += 1;
}

bool GAME::gamble()
{

cout << "Would you like to gamble the winnings? Y or N";
gamble:
{
int x; //used to proceed through yes or no, higher lower questions
int y;
x = getchar();
if (x == 121)
{
int temp = (rand() %9)+1;
cout << "Gamble high or low" << endl;
cout << "Will the number be higher or lower than 5?" << endl;
cout << "(H)igher or (L)ower" << endl;
y = getchar();
if ((y == 104) && (temp >= 5))
{
cout << "WIN WIN" << endl;
cout << "Doubled winnings" << checkForWin()*2 << "credit" << endl;
credit += checkForWin()*2;
}
else if ((y == 108) && (temp <= 5))
{
cout << "WIN WIN" << endl;
cout << "Doubled winnings" << checkForWin()*2 << "credit" << endl;
credit += checkForWin()*2;
}
else
{
cout << "Wrong answer, you lose your winnings" << checkForWin() << "credit" << endl;
}

if ((y != 104) || (y !=108)) {goto gamble;}
}
else if (x == 110) {credit = credit + checkForWin();}
else {goto gamble;}
return 0;
}

int GAME::getHoldRequest();
{
int x;
cout <<"Would you like to hold any of the reels? Y or N" << endl;
hold:
x = getchar();
if (x == 121)
{
holding = true;

cout << "Would you like to hold the first reel? Y or N" << endl;
hold1:
x = getchar();
if (x == 121)
{
reel1Hold = true;
}
else if (x == 110)
{
reel1Hold = false;
}
else { goto hold1;}

cout << "Would you like to hold the second reel? Y or N" << endl;
hold2:
x = getchar();
if (x == 121)
{
reel2Hold = true;
}
else if (x == 110)
{
reel2Hold = false;
}
else {goto hold2;}

cout << "Would you like to hold the third reel? Y or N" << endl;
hold3:
x = getchar();
if (x == 121)
{
reel3Hold = true;
}
else if (x == 110)
{
reel3Hold = false;
}
else {goto hold3;}
}

else if (x == 110) {return 0;}
else {goto hold;}

return 0;
}
int GAME::checkForWin();
{
if ((symbol1 == 1) && (symbol2 == 1))
{
if ((symbol1 == 1) && (symbol2 == 1) && (symbol3 == 1))
{ return 5; }
else
{ return 2; }
}
else if ((symbol1 == 2) && (symbol2 == 2))
{
if ((symbol1 == 2) && (symbol2 == 2) && (symbol3 == 2))
{ return 6; }
else
{ return 3; }
}
else if ((symbol1 == 3) && (symbol2 == 3))
{
if ((symbol1 == 3) && (symbol2 == 3) && (symbol3 == 3))
{ return 7; }
else
{ return 4; }
}
else if ((symbol1 == 4) && (symbol2 == 4) && (symbol3 == 4))
{ return 10; }

return 0;
}

void GAME::play();
{
credit = 8;
holding = false;
reel1Hold = false;
reel2Hold = false;
reel3Hold = false;

do
{
int x;
system("cls"); //clear the screen between each spin enables clear view and better presentation
cout << endl;
cout << "***********************" << endl;
cout << " -FRUITASTIC SPINNING- " << endl;
cout << " --------GAME--------- " << endl;
cout << "Credits ->" << credit << endl;
cout << "Any key to continue" << endl;
x = getchar();
getchar();
credit--;

REEL reel;

if (holding == true)
{
if(reel1Hold == false) {symbol1 = reel.getCurrentSymbol(); }
if(reel2Hold == false) {symbol2 = reel.getCurrentSymbol(); }
if(reel3Hold == false) {symbol3 = reel.getCurrentSymbol(); }
reel1Hold = false;
reel2Hold = false;
reel3Hold = false;
}

else
{
symbol1 = reel.getCurrentSymbol();
symbol2 = reel.getCurrentSymbol();
symbol3 = reel.getCurrentSymbol();
}

//setting the char length for the fruits in the reels
char reel1 [7];
char reel2 [7];
char reel3 [7];
// connecting the strings to follow one another in the actually showing of spin results
// first reel symbols
if (symbol1 == 1)
{
strcpy(reel1, "Cherry");
}
if (symbol1 == 2)
{
strcpy(reel1, "Melon");
}
if (symbol1 == 3)
{
strcpy(reel1, "Lemon");
}
if (symbol1 == 4)
{
strcpy(reel1, "Jackpot");
}

// second reel symbols
if (symbol2 == 1)
{
strcpy(reel2, "Cherry");
}
if (symbol2 == 2)
{
strcpy(reel2, "Melon");
}
if (symbol2 == 3)
{
strcpy(reel2, "Lemon");
}
if (symbol2 == 4)
{
strcpy(reel2, "Jackpot");
}

// third reel symbols
if (symbol3 == 1)
{
strcpy(reel3, "Cherry");
}
if (symbol3 == 2)
{
strcpy(reel3, "Melon");
}
if (symbol3 == 3)
{
strcpy(reel3, "Lemon");
}
if (symbol3 == 4)
{
strcpy(reel3, "Jackpot");
}

cout << "**" << reel1 << "--"<< reel2 << "--" << reel3 << "**" << endl;


RANDOMNUMBER rand;
int hold = rand.generateNumber();
if ((holding == false) && (hold == 1)) { getHoldRequest(); }
else { holding = false; }

if (holding == false)
{
if (checkForWin() > 0 )
{
cout << "WIN WIN" << checkForWin() << credit << endl;
gamble();
}

else

{
cout << "You lose this time" << endl;
}
}

cout << "Any key to continue" << endl;
getchar();
} while (credit > 0);


cout << "You lost better luck next time" << endl;

}
}

// Main.cpp implementin the game

#include "Reel.h"
#include "RandomNumber.h"
#include "Game.h"
#include <ctime>
#include <cstdlib>
#include <iostream>


using namespace std;

int main()
{
GAME game;
game.play();

return 0;
}



ok thats all my codin and if any1 can figure out or suggest what ive done wrong ill be most appreciative
chris