コンベンション

struct と class

BuddhaLib は XNA Framework と同様の操作感を開発者に与えることを目的に開発されているため、 構造体とクラスの使い分けも C# の言語使用に沿ったものとなっています。ご存知のとおり、C++ はクラスと構造体には標準アクセスレベル以外の違いはありません。

しかし、 BuddhaLib では、基本的に new オペレータを使用せずに値を確保し、参照やコピー渡し が可能なものを struct、それ以外のものを class で定義を行っています。

struct は原則的にパブリックメンバ変数が解放されており、直接値の読み書きが可能です。逆に、 class は原則的にメンバ変数へのアクセスはできません。

STLコンテナの利用とAPI命名規則

STL コンテナを使用する場合は必ず typedef する。 型が同じであっても役割に応じて各クラス内で typedef する。 typedef の命名規則は以下に準ずる。

vector および list

{格納するクラス名} + {List}
  typedef std::vector<Model> ModelList;
  ModelList mModelList;

map

{格納するクラス名} + {Map}
  typedef std::vector<String, Model> ModelMap;
  ModelMap mModelMap;

クラスメンバのコンテナへのアクセス

friend クラス以外のクラスが、あるクラスのメンバであるSTLコンテナに直接アクセスしてはならない。 必ずアクセスメンバ関数を通じて値のやり取りを行うこと。

もし、イテレーターを渡す必要がある場合は、ヘッダで宣言されているイテレーターのラッパーを使用して、 STL コンテナのイテレーターを直接使用しなくて済むようにする。

API命名体系


Generated on Fri Jun 29 16:49:19 2007 for BuddhaLib by  doxygen 1.5.2