К какому классу принадлежит эта функция-член?OOP - PullRequest
0 голосов
/ 14 ноября 2018

Допустим, мы программируем простую игру в покер.

class Card
{
public:
    Card(Suit s, Rank r);
    enum Suit getSuit();
    enum Rank getRank();
    void printCard();
private:
    Suit suit;
    Rank rank;
};

class Deck
{
public:
    Deck();
    /* either friend class Dealer; or should Dealer's class function that 
    manipulates deck assigned here? or make private deck data public?? */
private:
    std::vector<Card> deck;
};

class Player
{
public:
    int raise();
    int bet();
    Card fold();
    void check();
private:
    Card hand;
    int money;
};

class Dealer
{
public:
    Dealer();
    void DealCardsToPlayers(Deck& d);
    void Shuffle(Deck& d);
    Player evaluateWinner();
private:
    int collectPot();
    int pot;
};

В реальном мире сама колода не знает, что и как она должна вести, и дилер будет определять, где и как картыдолжен вести себяНо я не уверен, что это хороший дизайн в мире программирования.

Где должна быть функция класса, которая манипулирует данными Дека?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...