Notice : 内容無保証。禁無断転載。リンク自由。

constructor_2.cpp

#include <stdio.h>

// コンストラクタ (2)
// クラスメンバのコンストラクトと初期化を一体化する

class Cint {
    int    m_x ;

public:
    Cint(){
        printf(" Cint::Cint() : default constructor.\n") ;
        m_x = 0 ;
    }

    Cint(
        int x
    ){
        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)    // クラスメンバのコンストラクト(引数付き)
    {
        printf("C::C(%d,%d)\n", ci, i) ;
        m_i = 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 ;
}


戻る
トップページへ戻る