Navigation Menu

Skip to content

Commit

Permalink
doc coding-style: add about use intialize list
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Mar 16, 2012
1 parent 8266156 commit a9f322b
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions doc/source/developer/coding_style.rst
Expand Up @@ -485,3 +485,38 @@ C++では真偽値に ``bool`` を使うためこのような状況は発生し
if (!memcmp(value1, value2, value_size)) {
printf("same value!\n");
}

初期化
------

メンバー変数の初期化には初期化リストを用いる
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

無駄な処理を省くためにコンストラクターでのメンバー変数の初期化には初期化リストを用いる。初期化リストを用いないとコンストラクターの処理とコピーコンストラクター・代入処理が行われたりなど非効率である。(後述)

よい例:

class Table
{
Table(const char *name);
std::string name_;
}
Table::Table(const char *name) :
name_(name)
{
}
悪い例( ``std::string(name)`` のところでコンストラクターが動き、 ``name_ = ...`` のところで代入演算子が動いて2回初期化している):

class Table
{
Table(const char *name);
std::string name_;
}
Table::Table(const char *name)
{
name_ = std::string(name);
}

0 comments on commit a9f322b

Please sign in to comment.