For instance... I have the class Deck, which represents a deck of cards, and I want another class, derived from that, called cards, I want class Deck to have a class array called Cards[52], so I can assign all the different values and strings to the individual Cards class instances and have the class Deck do things to the deck as a whole... Im talkin something like this

class Deck{
protected:
class Cards[52];   // This doesnt work to have multiple instances in the class

public:
void Shuffle();

};

class Cards : public Deck{
Cards(int,string);
};

ik that you might not understand why i want to do this in two different classes, but i do... so please just gimme a clear cut answer. please and thank you!

Recommended Answers

All 2 Replies

Don't define class Card within class Deck.
Create a card class.
Then let deck class contain an array of card objects

class Card {
string suit;
int value;
///more stuff
};

class Deck{
Card theDeck[52];
//more stuff
};

When I had to use two classes that interlaced, I wrote my first class out, then wrote the second class out, then had a variable in the second class that called the first class. For your example, I would write out what you want class Card to do. Then write out what you want class Deck to do, and when you know where they overlap, use a variable that jumps between the classes.

For me, I'm going to call my classes Deck and PCards so I can make sure it all makes sense. So, say you want class Deck to shuffle the cards. You would try something like this:

PCards Shuffle (PCards cards[], int 52) 
{
   cards.randomize();
   return cards;
}

Where they would be a function in class PCards that would randomize them. Now, that's just off the top of my head, and I don't know what you are trying to do, but that's how I handled having two classes.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.