我有一个问题,我需要使用运算符重载添加两个类成员。问题还在于,我需要添加的成员是字符串。.我尝试使用stringstream,但我似乎没有用,错误无限循环发生。有没有很简单的方法将字符串转换为整数以进行添加?或至少添加两个字符串以打印出总和的方法
class PlayingCard
{
public:
char suit;
string rank;
PlayingCard operator +();
};
PlayingCard deck[52];
PlayingCard player[10];
PlayingCard dealer[10];
int playerHits = 2;
int dealerHits = 2;
PlayingCard PlayingCard::operator+()
{
int r1;
int r2;
stringstream pr1;
stringstream pr2;
string temp1 = player[1].rank;
string temp2 = player[2].rank;
pr1 << temp1;
pr2 << temp2;
pr1 >> r1;
pr2 >> r2;
return(r1 + r2);
}
最佳答案
您的operator+
没有任何参数,因此无法正常工作。
成员operator+
必须具有以下签名:
class X {
X operator+(const X &b);
};
一个免费的
operator+
需要这样看:X operator+(const X &a, const X &b);
好吧,那是一种方法。
我建议你回到书上去;)