我有一个问题,我需要使用运算符重载添加两个类成员。问题还在于,我需要添加的成员是字符串。.我尝试使用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);


好吧,那是一种方法。

我建议你回到书上去;)

07-22 01:33