我試圖改變我的卡類int變量的值,如下圖所示:更改對象的私有變量在一個載體
class Card {
public:
enum Suits {diamond, heart, club, spade};
Card (int _rank, Suits _suit) : rank{_rank}, suit{_suit} {}
int getRank();
void changeRank(int change);
private:
int rank;
Suits suit;
};
card.cpp:
int Card::getRank() {
return rank;
}
void Card::changeRank(int change) {
rank = change;
}
這裏是Player類:
class Player {
private:
vector<Card> playerHand;
public:
Card getCard(int index);
};
player.cpp:
Card Player::getCard(int index) {
return playerHand[index];
}
這裏是dealer.cpp文件實際上使呼叫:
if (oneOrEleven == 11) {
player.getCard(i).changeRank(11);
cout << "The ace will have a value of 11" << endl;
}
此代碼調用方法「changeRank()」,它只是沒有在卡對象改變「等級」的價值。
我在做什麼錯?
'getCard'正在返回值,所以你得到的是一個副本。將其更改爲按參考返回。 –