This is the function that causes the problem.
Code:
Deck::~Deck()
{
delete this;
}
I call the function in this function:
Code:
void Card_Game::cleanup()
{
deck->~Deck(); // delete deck
for (unsigned int loop = 0; loop < players.size(); loop++) // delete hands
{
players[loop].clear_hand();
}
players.clear(); //delete players
}
And I call cleanup here:
Code:
int Card_Game::main_menu(int result)
{
switch(result)
{
case 1: // play blackjack
cleanup(); // cleanup just in case
initialize_players(2);
deck = new Deck;
deck->shuffle_deck();
players[0].draw(*(deck), 1);
players[1].draw(*(deck), 1);
return 1;
case 2: // quit game
return 3;
default:// invalid entry
std::cout << "Please enter 1 or 2.\n";
return 0;
}
}
Basically the program freezes when I make it go to case 1. Any ideas why I can't do that?