よく教科書などのなかで、クラス名はCの大文字から初めて
CAAA
というように書かれてあるのがあるのですが、何か意味が
あるのでしょうか。
みなさんもそうされていますか。AAAとはじめると問題があったり
する場合などあるのでしょうか。
Microsoftが勝手にこしらえたルールです。
それ以上の意味はありません。
「それ以上の意味」と言えるかどうか解りませんが...。
・クラス名に限らず、「この型の変数はどの文字を頭につける」という風に
決められています。「ハンガリー記法」と呼ばれています。
・私はMicrosoft関係者ではありませんが、なるべくこれに沿うようにしています。
あくまで「なるべく」であって、個人的にルールを拡張している場合もあります。
・コンパイラから見れば、ネーミングルールなぞどうでもいいので、
このルールを無視した所で問題は起きません。ただ、このルールに慣れてしまった
人は戸惑うかも知れません。
他にも、MSDN 見てるとゴロゴロ出てくるです。MS 独自ルール。
・インターフェイス名の先頭は I
・ポインタ型名の先頭は P ないし LP
・構造体のタグ名の先頭は tag
型だとこんなもんですが、変数名、引数名にまで言及すれば、
・バイト数をあらわすものには接頭辞 cb
・文字数を表すものには接頭辞 cch
・DWORD 型には接頭辞 dw
・ポインタ型には接頭辞 p または lp
・文字列には接頭辞 sz
などなど。ちなみに、Borland 系列はクラス名の先頭が T みたいですね。
ただ、これもメリットが無いわけではないのですが万能ではありませんし、
使わない人、嫌う人も少なからずいます。
俺も最近は使わないようになってきました。特に C# では。
従わなくてもまったく影響はありません。
従うも従わないもお好みでどうぞ。
#会社の命名規約とかある場合は別ですけどね
軽微な影響だと、Microsoft 製統合環境の
Wizard が、先頭が C のクラスを作ると親切にも
それを落としたデフォルト名を表示してくれるとか...。
Borland は OWL(Object Windows Library) の頃から
T ですね。確か、Type の頭文字だったと思います。
基本的にハンガリアンベースの命名法は、Micorsoft 社の
勢力圏内 (特に Windows + C/C++ )限定だと思ってます。
私の場合は、規約で制限がなければ付けてません。
好きか嫌いかと言われたら嫌う方の人間なこともありますが、
C# とか Java でもあんなものは付けてませんし、
Linux や iTRON 等ではまた別のお約束があるので
Microsoft べったりの記法は採用されづらいというのもあります。
Windows 専用の C/C++ 案件だと、この範囲では有名
(他の人に理解されやすい)ので規約で制限されることも多いですが。
私(個人)は、CとIを良く付けます。
(単純に独自プレフィックスを考えるのが面倒なだけです。)
Windowsアプリ開発(特にCOM絡み)の経験者達と開発する場合は、
独自にルールをこしらえるよりMSルールを流用してしまった方が楽な場合が多いと思います。
みなさん、お返事ありがとうございました。
私の知らなかったことばかりで驚きました。「C」をつける方もいれば
つけない方もいるのですね。
どうしてもクラスやメンバ変数、関数などの名前が増えてくると区別するために
CAAABBBCCCDDDEEE
と役割ごとに区別して名前を決めていたのですが、そんなときいつも
なぜはじめはCでないといけないのだろうと思っていました。
これからどうしようかつけようかどうかまだ迷っていますが、
大変参考になりました。今回はありがとうございました。
すみません、解決のチェックを忘れました