Проблема в том, что когда я добавляю элемент, используя push_back
, к вектору в одном классе, а затем, когда я пытаюсь получить доступ к этому вектору из другого класса, изменения не сохраняются.Ни один элемент не был добавлен к вектору из этого другого класса, но из класса, в который я его добавил, он был добавлен без проблем.
Я пытался сделать это ссылками и указателями, но так как я 'Я довольно новичок в C ++. Я не смог понять это.Пытался поместить &
и *
перед переменными, функциями и тому подобным, но ничего не работало.
Hand.h
class Hand {
public:
std::vector<Card>& GetDealerCards();
};
Hand.cpp
std::vector<Card>& Hand::GetDealerCards() {
return this->dealerCards;
}
Game.cpp
void Game::Initialize() {
Dealer dealer;
dealer.DealCard(1);
Hand hand;
std::vector<Card> dealerCards = hand.GetDealerCards();
std::cout << dealerCards.size() << std::endl;
for (int i = 0; i < dealerCards.size(); i++) {
std::cout << dealerCards.size() << std::endl;
}
}
int main() {
Game game;
game.Initialize();
return 0;
}
Dealer.cpp
void Dealer::DealCard(int cards) {
Hand hand;
for (int i = 0; i < cards; i++) {
Card card(SelectRandomElement(cardSuits, 4), SelectRandomElement(cardValues, 12));
std::vector<Card>& dealerCards = hand.GetDealerCards();
dealerCards.push_back(card);
}
}
В классе Game
, где я печатаю, сколько элементов вdealerCards
вектор, но он все еще печатает 0, и изменения не применяются от другого класса.