Athlete という親クラスと、TennisPlayer という子クラスがあります。私の親クラスには、名前と年俸の 2 つの属性があります。両方のクラスのユーザー入力を受け取る read メソッドもあります。私の親はこんな感じです。
class Athlete
{
public:
Athlete();
Athlete(string name, float annual_salary);
virtual void read();
virtual void display();
string get_name() const;
float get_annual_salary();
void set_name(string name);
void set_annual_salary(float annual_salary);
private:
string name;
float annual_salary;
};
class TennisPlayer : public Athlete
{
public:
TennisPlayer();
TennisPlayer(string name, float annual_salary, int current_world_ranking);
int get_current_world_ranking();
void set_current_world_ranking(int current_world_ranking);
virtual void read();
virtual void display();
private:
int current_world_ranking;
};
アスリート クラスの read() メソッドは完全に機能します。しかし、子クラスであるtennisPlayerに関しては、何かがうまくいかず、ユーザー入力を受け付けず、代わりにすぐに現在の世界ランキングの入力を求めてきます. これがTennisPlayerクラスの私の.cppです:
void TennisPlayer::read()
{
cout << "Enter name for tennis player: " ;
getline(cin, get_name());
cout << "Enter annual salary for tennis player: ";
cin >> get_annual_salary();
cout << "Enter current world ranking: ";
cin >> current_world_ranking;
}
TennisPlayer クラスのコンストラクター:
TennisPlayer::TennisPlayer(string name, float annual_salary ,int current_world_ranking)
: Athlete(name , annual_salary)
{
this->current_world_ranking = current_world_ranking;
}
また、tennisPlayer の年俸を読み取るときにも問題があります。私は C++ の継承についてよく知りません。前もって感謝します。