標準ヘッダ


C++でCの標準ヘッダを使うときには,もとのヘッダ名の頭に"c"をつけて 後ろの".h"をとったものをインクルードするといいらしい(なんだか電話の市外 局番の変更みたいだ).例えば,

#include <stdio.h>
だったものは
#include <cstdio>
となる.こういう拡張子".h"のついてないヘッダというのは,なんかの本によると, "std"というnamespaceでラッピングされているのがメリットらしいのだが.... うーん,僕の使っているマシンに入っている標準ヘッダのソースを 見てみても,特に"std"とか"namespace"なんてキーワードは見つからないん ですけど.... gccって,こういう仕様なのかな.それとも単にヴァージョンが古いだけなのか. まあ,namespaceが必要になるほど複雑なプログラムなんて, 僕は書かないからいいけど.
(最新の gcc (egcs?) では,namespace が使われているようです.でも, ものの本に書いてあるように "using namespace std;" と書かないとコンパイルが 通らないというようなことはなさそう.)

但し,"cmath" に関しては "math.h" と比べてもっと大きなメリットがある. それは,C++の特徴である多態性を活かして,同じ名前の数学関数で複数の型を 扱えるようにしてあるということだ.ちゃんと double 用の abs() 関数も 用意されている.でもそのくらいか.ほかにもメリットはあるぞと言う方は, ぜひ教えてください.





戻る