ページ 11

クラスの名前(タグ?)

Posted: 2012年6月19日(火) 04:36
by jay
構造体をtypedefで宣言する時は

コード:

typedef struct{
//メンバ変数など
}enemy_t;
といった感じにタグの最後に"_t"をつけますよね。
これはそういう慣習なのだと先生から教わりました


では同じようにクラスの名前を定義する時には、名前に何か決まり(習慣)があるのでしょうか?
別の先生はいつも名前の先頭に大文字で"C"と付けていましたが、これが習慣でしょうか?
それともこれって先生が独自にやっていたコーディングルールでしょうか。

どなたか教えてください

Re: クラスの名前(タグ?)

Posted: 2012年6月19日(火) 10:35
by softya(ソフト屋)
両方共、一般的だと断言するには根拠が薄いでしょうね。そういうルールがあり使われていることは確かです。
ただ、会社や組織ごとにルールがあり、それが全てではありません。

【補足】
一般に命名規則も含めてコーディング規約と呼ばれますが、多人数で1つのソフトを作るのに一貫性がないと混乱のもとですから結構重要です。
これは一人で作っても長年メンテするなら必須だと言えます。

「C++コーディング標準リンク集」
http://www.02.246.ne.jp/~torutk/cxx/cod ... links.html
「コーディング規約メモ」 C言語ですが分かりやすかったので。
http://www.6809.net/tenk/html/prog/cstyl_ex.htm

Re: クラスの名前(タグ?)

Posted: 2012年6月19日(火) 18:13
by ISLe
jay さんが書きました:構造体をtypedefで宣言する時は
(略)
といった感じにタグの最後に"_t"をつけますよね。
これはそういう慣習なのだと先生から教わりました
たまに見かけますけど、わたしの周りではまったくそういう習慣はないですね。
標準ライブラリのsize_tは構造体じゃないですし。
jay さんが書きました:では同じようにクラスの名前を定義する時には、名前に何か決まり(習慣)があるのでしょうか?
別の先生はいつも名前の先頭に大文字で"C"と付けていましたが、これが習慣でしょうか?
それともこれって先生が独自にやっていたコーディングルールでしょうか。
クラスの頭に大文字のCを付けるのはマイクロソフトがMFCでやってるのを真似たのでしょうね。
そういうふうにしなさいと説明している書籍も多いですし。

でもわたしはやらないですね。
C++はだいたい何でもクラスで実装するわけで、どこもかしこもCで始まる名前になってしまうなら付ける意味が無いです。
むしろMFCのクラスを区別するためにあえて自作クラスには付けません。

個人的に気を付けてやってるのは
・クラス名や名前空間名は先頭が大文字のキャメルケース(CamelCase)
・公開される関数名は先頭が小文字のキャメルケース(camelCase)
・局所的な識別子だとスネークケース(snake_case)
・関数名は動詞から始める※インターフェース的な関数で例外あり
くらいです。
あとはコードが英文としてなるべく自然な形になるように、単語を選んだり単語の並びに気を付けています。
英語は得意でないのでつもりですが。

Re: クラスの名前(タグ?)

Posted: 2012年6月19日(火) 19:01
by jay
>softyaさん
両方共、一般的だと断言するには根拠が薄いでしょうね。そういうルールがあり使われていることは確かです。
ただ、会社や組織ごとにルールがあり、それが全てではありません。
ふむ、やはり一般的なものでは無かったのですか
しかしクラスの方はともかく、構造体の方もそこまで一般的で無いとは…、ちょっと驚きました

まだまだ勉強不足ですねぇ、僕も


>ISLeさん
たまに見かけますけど、わたしの周りではまったくそういう習慣はないですね
う~ん、そうなのですか…。
ウチの学校では「そういう習慣なんだ」って教わりましたし、Dixqさんも龍神録の館でそうやってたから(_tの方です)
こっちも一般的だと思っていましたが、こっちもそこまで共通の認識ってわけじゃないんですね、勉強になります~



つまりは、チーム制作の時はその時のルールに合わせ
個人制作の時は自分のコーディングルールに則って書きなさい、ってことですね
お二方とも、ありがとうございました!