作为类成员的数组不接受来自cin的输入

时间:2015-03-05 15:15:13

标签: c++ arrays class cin

我正在尝试定义一个从用户那里获取输入并将其存储在类'Player'的数组成员中的类

for (i = 0; i < n; i++){
        cout << "Enter scores: ";
        cin >> player1.score[i] >> player2.score[i] ;
        if (player1.score[i] > player2.score[i]) {
            if (player1.highscore < player1.score[i]){
                player1.highscore = player1.score[i] ;
                }
        }

此处还有类定义

class Player
{
public:
    Player (int n) ;
    int highscore ;
    int score[] ;
};

Player::Player (int n) {
    int i ;
    cout << "Player created" << endl;
    for (i = 0; i < n; i++)
        score[i] = 0 ;
}

在程序要求分数后运行,它会停止并输出这个数字: 132767

1 个答案:

答案 0 :(得分:0)

C ++中没有运行时大小的数组,而int score[]并没有神奇地为您提供大小为n的数组。

请改用std::vector<int> score;。有了它,你的构造函数将如下所示:

Player::Player(int n) : score(n) {
    std::cout << "Player created\n";
}

score将正确初始化为0,并为n int提供空间。