C++における命名規則

命名規則やコーディング規約はプログラミングを行うにあたりに重要であることが知られています.

C++は歴史が古く,命名規則やコーディング規約の重要性が認識されるよりも前に数多くのコードが作成されてきました.それゆえ,さまざまなコードでさまざまな命名記法が用いられており,コードが読みにくい一因となっています.

本記事では,私がよく使用しているGoogle C++ Style Guideをもとにした命名規則を記載しています.

目次

命名規則の重要性

「命名規則」は,コーディング規約の一部です.

コーディング規約には,命名規則の他に「プロジェクトの構成」や「コードフォーマットのスタイル」,「禁止事項や制限事項,推奨事項」などがあります.

命名規則の目的は,理解しやすいコードを書くことです.

変数の命名は,プログラマの個性やこだわりが出やすい部分項目です.自分にとって読みやすくても,他人もそうとは限りません.命名規則を設けることで,可読性の向上やコード修正時のコスト低減が図れます.

理解しやすいコード(≒コードの可読性)の詳細に関しては,リーダブルコードなど書籍に記載されていますので,興味がある方は一読するとよいでしょう.

命名規則

代表的な命名記法

命名規則を表現する記法はいくつか存在し,下記に代表的なものを示します.

名称
キャメルケースcamelCase
スネークケースsnake_case
アッパースネークケースUPPER_SNAKE_CASE
ケバブケースkebab-case
パスカルケースPascalCase

早見表

対象説明
ファイル名my_src.cppmy_header.hppスネークケース
関数名my_function()スネークケース
クラス名MyClass()パスカルケース
変数名(全般)my_varスネークケース
メンバ変数名(クラス)my_var_スネークケース+末尾アンダースコア
メンバ変数名(構造体)my_varスネークケース
名前空間名my_namespaceスネークケース
型名(typedef, using, enumなど)MyInt, MyDouble, MyEnumパスカルケース
列挙型メンバENUM_VARアッパースネークケース
マクロ名MACRO_NAMEアッパースネークケース
よかったらシェアしてね!
目次