C言語関係掲示板

過去ログ

No.1228 ヘッダファイル内にある「::」は?(C++)

[戻る] [ホームページ]
No.16236

ヘッダファイルについて
投稿者---れいじ(2004/08/18 15:50:30)


はじめまして。ヘッダファイル内にある「::」はどういう意味をもつのでしょうか??
(例)「typedef _TYPENAME traits::int_type int_type;」
宜しくお願いします。


No.16237

Re:ヘッダファイルについて
投稿者---たか(2004/08/18 16:25:07)


>はじめまして。ヘッダファイル内にある「::」はどういう意味をもつのでしょうか??
>(例)「typedef _TYPENAME traits::int_type int_type;」

C++の質問ですね。これはスコープ解決演算子と呼ばれ、名前空間または
クラス名がtraitsに属するint_typeという名前を指示する事を意味しま
す。typedefしていますから、本来ならばtraits::int_typeと書かなければ
ならない所をint_typeと書くだけで済むようになります。

またここでは_TYPENAMEというマクロになっている部分は本来何だったの
かはこれだけではわかりませんが、もしtypenameキーワードだったら、
これなしではtraits::int_typeがtraitsのメンバ変数であると解釈されて
しまいコンパイルエラーになりますが、typenameキーワードが付けられる
とtraits::int_typeが型名である事がコンパイラに伝わり、エラーが
出なくなります。

後者のトピックはtypenameキーワードの必要性を感じた時にまた改めて
調べればいいです。



No.16238

Re:ヘッダファイルについて
投稿者---れいじ(2004/08/18 17:25:04)


たかさん、ありがとうございました。