たとえばこれ
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
0 件のコメント:
コメントを投稿