#include <stdio.h> // コンストラクタ (3) // クラスメンバのコンストラクトと初期化を一体化する class Cint { int m_x ; public: Cint( int x=0 ){ printf(" Cint::Cint(%d)\n", x) ; m_x = x ; } int get(void) {return m_x ;} } ; class C { Cint m_ci ; // コンストラクタを持つクラスメンバ int m_i ; // コンストラクタを持たないクラスメンバ public: C( int ci=0, int i=0 ): m_ci(ci), // クラスメンバのコンストラクト(引数付き) m_i(i) // 基本型のクラスメンバも同様に初期化できる { printf("C::C(%d,%d)\n", ci, i) ; } void show(char* msg=""){ printf("%s(%d,%d)\n", msg, m_ci.get(), m_i) ; } } ; int main(void){ C a ; C b(1,2) ; C c = 3 ; a.show("a=") ; b.show("b=") ; c.show("c=") ; return 0 ; }