C++のコンストラクタにある「:(コロン)」について
C++のコンストラクタを書くところに「:」がついているものがある.
たとえばこれ
これはコンストラクタが呼ばれたときにメンバ変数を「( )」の中の値で初期化しているらしい.
つまり,コンストラクタが呼ばれたときは「num_int」は「0」となり,「num_dou」は「1.2」となる.
でも,これは次と同じように見える.
しかし,この2つの違いは,
上はメンバ変数をそれぞれの値で初期化していること.
下はメンバ変数に値を入れていること.
という違いがあるらしい.
参考にしたサイト
コンストラクタで書かれるコロン「:」って何?|C++ フリーでぷろぐらみんぐ
http://ameblo.jp/nana-2007-july/entry-10037680575.html
コンストラクタでは、代入よりも初期化を使おう 12項 - Higepon’s blog - Mona OS and Mosh
http://d.hatena.ne.jp/higepon/20051107/1131335521
たとえばこれ
class testclass
{
private:
int num_int;
double num_dou;
public:
testclass()
:num_int( 0 )
,num_dou( 1.2 )
{
}
}
これはコンストラクタが呼ばれたときにメンバ変数を「( )」の中の値で初期化しているらしい.
つまり,コンストラクタが呼ばれたときは「num_int」は「0」となり,「num_dou」は「1.2」となる.
でも,これは次と同じように見える.
class testclass
{
private:
int num_int;
double num_dou;
public:
testclass()
{
num_int = 0
num_dou = 1.2
}
}
しかし,この2つの違いは,
上はメンバ変数をそれぞれの値で初期化していること.
下はメンバ変数に値を入れていること.
という違いがあるらしい.
参考にしたサイト
コンストラクタで書かれるコロン「:」って何?|C++ フリーでぷろぐらみんぐ
http://ameblo.jp/nana-2007-july/entry-10037680575.html
コンストラクタでは、代入よりも初期化を使おう 12項 - Higepon’s blog - Mona OS and Mosh
http://d.hatena.ne.jp/higepon/20051107/1131335521