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.