とどちらを使うべきか?
以下の記事の抄訳
C++ Tip : Should I use iostream.h or iostream? - CodeProject
結論から言うと、iostream を使うべき。
理由として、挙げられているのは以下のとおり
- .hという記述方法は5年も前に廃止された。廃止されたものを使い続けるのはよろしくない。
がテンプレート化されたクラスや、ワイドキャラクタをサポートしているのに対して、 は char しかサポートしていない。 - C++標準仕様において
のインターフェースは微妙に変更されている。従って、 といくつか違いが存在する。 のコンポーネントは std 名前空間に定義されるが、 はグローバルに定義される。
上記のような違いから、
追記:2011/08/29
コメント頂いたので、もう少し調べてみた。
そもそも、上記に挙げているiostream.h
というヘッダファイルは「標準」には存在しなかったようだ。おそらく、標準が固まる以前に特定のコンパイラに付属していたものに関する記述と思われる。
標準で提供しているヘッダファイルの名前に関する過去の経緯については、以下のページが参考になる。(回答内容を裏づける公式な情報は見つけ切れなかったが、おそらくそのとおりじゃないかと思う)
なぜ、C++の標準ヘッダをインクルードするとき拡張子をつけないのか。 - C・C++ - 教えて!goo
あと参考になりそうなページ