Error: Member is inaccessible

c++, inheritance

Solution

You can declare cards as `protected`:

class Hand
{
public:
    int getTotal();
    std::vector<Card>& getCards();
    void add(Card& card);
    void clear();
protected:
    std::vector<Card> cards;
};

class Deck : public Hand
{
public:
    void rePopulate();
    void shuffle();
    void deal(Hand& hand);
};

Problem

I have these two classes: ``` class Hand { public: int getTotal(); std::vector<Card>& getCards(); void add(Card& card); void clear(); private: std::vector<Card> cards; }; class Deck : public Hand { public: void rePopulate(); void shuffle(); void deal(Hand& hand); }; ``` Where the `shuffle()` function is declared as follows: ``` void Deck::shuffle() { std::random_shuffle(cards.begin(), cards.end()); } ``` However, this returns the following error: ``` 'Hand::cards' : cannot access private member declared in class 'Hand' ``` Should I just include a function such as`std::vector<Card>& getCards()` or is there another way to avoid the error.

Original source