1.8 C++ ストリーム抽出演算子のオーバーロード

C++ ストリーム抽出演算子のオーバーロード

C++ では、ストリーム抽出演算子 (>>) は、ストリームからデータを抽出するために使用される演算子です。

C++ のストリーム抽出演算子はオーバーロードできるため、プログラマはオブジェクトの入力方法をカスタマイズしたり、カスタム データ型をより便利に入力したり、入力をより柔軟で便利にしたりできます。

ストリーム抽出演算子のオーバーロードの一般的な形式は次のとおりです。

ここに画像の説明を挿入
このうち、T は入力するカスタム型、is は std::istream 型の入力ストリーム オブジェクト、obj は入力するカスタム型のオブジェクトです。

オーバーロードされた関数の戻り値は、入力ストリーム オブジェクトを表す std::istream 型の参照です。

以下は、私が作成したストリーム抽出演算子のオーバーロード デモです。
ここに画像の説明を挿入
上記のデモでは、MyObject という名前のクラスを定義し、その中でストリーム抽出演算子 >> をオーバーロードしました。

オーバーロードされた関数の最初のパラメーターは、入力ストリーム オブジェクトを表す std::istream 型の参照です。

2 番目のパラメーターは、MyObject 型の非定数参照で、インポートされるオブジェクトを表します。

オーバーロードされた関数では、入力ストリーム オブジェクト is を使用して入力ストリームから整数を抽出し、それを MyObject オブジェクトの value メンバー変数に代入し、最後に入力ストリーム オブジェクト is を返します。

main 関数では、MyObject オブジェクト obj を作成し、cin ストリームを使用して、ユーザーが入力した整数を MyObject オブジェクトに入力します。

次に、MyObject クラスのメンバー関数 printValue() を呼び出して、MyObject オブジェクトの値を出力します。

上記のデモ結果をコンパイルして実行します。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_40240275/article/details/131221167