C++で整数のストリーム抽出演算子(>>)のオーバーロード宣言


#include <iostream>
class MyInteger {
private:
    int value;
public:
    friend std::istream& operator>>(std::istream& input, MyInteger& obj);
};
std::istream& operator>>(std::istream& input, MyInteger& obj) {
    input >> obj.value;
    return input;
}

上記のコードでは、MyIntegerという名前のクラスを定義し、valueというプライベートメンバ変数を持っています。std::istream型の入力ストリームとMyInteger型のオブジェクトへの参照を引数として取るoperator>>関数を、MyIntegerクラスのフレンド関数として宣言しています。

関数の本体では、入力ストリームから整数値を読み取り、valueメンバ変数に格納しています。最後に、入力ストリームを返しています。

このオーバーロードされた演算子を使用すると、>>演算子を使ってMyIntegerオブジェクトに整数値を直接入力することができます。

以下は、オーバーロードされた演算子を使用する例です。

int main() {
    MyInteger myInt;
    std::cout << "Enter an integer: ";
    std::cin >> myInt;
    std::cout << "The entered integer is: " << myInt << std::endl;
    return 0;
}

上記の例では、ユーザーに整数を入力してもらい、入力値をmyIntオブジェクトに格納しています。その後、myIntオブジェクトの値を表示しています。

このように、オーバーロードされたストリーム抽出演算子を使用することで、整数の入力と表示を簡潔に行うことができます。