一般的にCプログラミング言語ではprintfとscanfを関数と見なします。 coutとcinに関して言えば、C++ではそれらは何ですか?つまり、括弧が付いていないため関数にはできないため、関数ではありません。では、coutとcinは標準の入出力関数ですか?それとも他の何かですか?
std::cout
および std::cin
はクラスのグローバルオブジェクトです std::ostream
および std::istream
それぞれ、演算子<<
と>>
をオーバーロードしました。 演算子のオーバーロード について読む必要があります。
cout << expr ;
~~~~~~ ~~~~ ~~~~~~~~
object op. argument
これは関数呼び出しのようなものです。関数はオーバーロードされた演算子であり、これに対するショートカットです。
cout.operator<<(expr);
またはこれ:
operator<<(cout, expr);
過負荷解決の結果に応じて
これらはグローバル変数であり、ヘッダー<iostream>
で宣言されています。
Xが変数であると仮定します(整数型とします)。それに値を入れたいと思います。
Cin >> xと書きます。
ただし、cin.operator >>(x)と記述してintデータを配置することもできます。これは、cinがオブジェクトであり、演算子>>がxが渡される関数であることを意味します。
cinはistreamから派生したオブジェクトであり、coutはostreamクラスから派生したオブジェクトです。両方(istreamとostream)は、iosという名前の親クラスから派生しています。