ostream &operator<<(ostream &s, employee &o)
{
s << o.name << endl;
s << "Emp#: " << o.ID << endl;
s << "Dept: " << o.department << endl;
s << "Phone: " << o.phone << endl;
return s;
}
cout << e;
は、所与employee e
用にフォーマットされた出力を生成します。
出力例:
Alex Johnson
Emp#: 5719
Dept: Repair
Phone: 555-0174
私はostreamに機能がどのように機能するかを理解することはできません。パラメータ "ostream &s"はどのように取得されますか? "< <"演算子はどのようにオーバーロードされ、< <演算子はどのように動作しますか?従業員に関するすべての情報を書き込むためにどのように使用できますか?誰かが素人の言葉でこれらの質問に答えることができますか?
オーバーロード演算子は、主に関数呼び出しのためだけ糖衣構文、表現されているπάνταῥεῖで指摘したように、我々は、それを変更しないので
employee
への参照は、constのあるべき'cout << * itr'は' operator <<(cout、* itr) 'と同じですが、実際にはこの構文を使うのと全く同じ方法で動作します。 – user657267あなたは、これらのことを本から学ぶのが賢明です。 –
注釈:出力演算子のオーバーロードのシグネチャは 'ostream&operator <<(ostream&s、const employee&o)'でなければなりません。すべてのゲッター関数も 'const'でなければなりません。' Employeeインスタンス。 –