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

Array as member of the class does not take input from cin

我正在尝试定义一个 class,它接受用户的输入并将其存储在 class '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 定义

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

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

改用 std::vector<int> score;。这样,您的构造函数将如下所示:

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

score 将被正确初始化为 0 并且 space 持续 n int 秒。