「C++/C++特有の概念」の版間の差分
削除された内容 追加された内容
編集の要約なし |
|||
75 行
using namespace std;
int main()
{
}
</syntaxhighlight>
99 行
この例では、オブジェクト指向を導入した結果として、
<pre>
"hello, world"という文字列をprintfする
</pre>
という考えから、
<pre>
coutと呼ばれるデータに"hello, world"という文字列を与えて、cout自身にそれを解釈させる
</pre>
という考えへの移行が行われています。
114 ⟶ 118行目:
例えば、Cでは標準出力に出力する時には次のようにprintf関数を使いました。
<syntaxhighlight lang="C">
printf("abc");
</syntaxhighlight>
一方、ファイルに出力する時には次のようにfprintfという異なる関数を使う必要があります。
<syntaxhighlight lang="C">
fprintf(f, "abc"); // fはファイルポインタ
</syntaxhighlight>
これは、扱う対象が異なっている以上当然ですが、
出力する対象の数が増えて来るとわかりづらくなります。
一方、C++を用いると、標準出力に対しては、
<syntaxhighlight lang="cpp">
std::cout.operator<<("abc");
</syntaxhighlight>
ファイルに対しても、
<syntaxhighlight lang="cpp">
f.operator<<("abc"); // fはファイルストリーム
</syntaxhighlight>
となり、同じ名前の関数 <nowiki> operator<< </nowiki> を用いることが出来ます。
ここで、<nowiki> operator<< </nowiki> は、それが所属するオブジェクト(実際にはオブジェクトが所属するクラス)によって動作が変化していることに注意が必要です。
このように、データ自身が実際の動作を知っていることで、
様々なデータを統一的に扱うことが出来ます。
145 ⟶ 155行目:
* 注意
実際に<<演算子を用いた演算を行う時には、
<syntaxhighlight lang="cpp">
cout << "abc";
</syntaxhighlight>
の部分は、
<syntaxhighlight lang="cpp">
cout.operator<<("abc");
</syntaxhighlight>
というメソッドの呼び出しに書き換えられて実行されます。
上の説明ではこのことを前提としています。
267 ⟶ 282行目:
入出力演算子を使うには、
<nowiki> <iostream> </nowiki> ヘッダをインクルードする必要がある。
コンソールへの出力は次のように行う。
<syntaxhighlight lang="cpp">
cout << 式;
</syntaxhighlight>
<nowiki><<</nowiki>演算子を複数使うことで、
複数の項目を出力することもできる。
320 ⟶ 337行目:
== 参考文献 ==
* 神林靖 監修 Herbert Schildt著『独習C++ 第3版』トップスタジオ訳、翔泳社、2005年11月05日 第3版第10刷発行
|