2

クラスの生徒を作りました

    class student
{
      private:
              string ID;
              string name;
              int age;
      public:
             ....
};

ユーザーから値を取得してマップに配置したいので、演算子>>オーバーロードを作成しました

istream& operator>> (istream& in, student person){
    string newID;
    string newname;
    int newage;
    return in;
}

だからそれがシンの部分に行くとき

    student person;
    cin>>person;

データマップに人を追加すると、cinではなくデフォルトのコンストラクターから値が呼び出されます

何をすべきか?

4

1 に答える 1

1

オペレーターは、参照により2番目の引数を取る必要があります。

istream& operator>>(istream& in, student& person) {
                                        ^ HERE

それ以外の場合は、から変更しpersonないように変更しますoperator>>()

于 2012-11-30T20:55:50.950 に答える