我正在尝试定义一个从用户那里获取输入并将其存储在类'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
答案 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
提供空间。