我试图改变我的卡类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'正在返回值,所以你得到的是一个副本。将其更改为按参考返回。 –