参照型のクラスメンバ変数

has-a はポインタを使うことが多くて曖昧な知識だったが、参照型のクラスメンバ変数は初期化子で初期化すれば利用できる。

class test                                                                                                                                                       
{
public:
    test(int& val) : m_val(val) {} // OK                                                                                                                         
    test(int val) : m_val(val) {} // OK                                                                                                                          
//    test() {} // test.cpp:6: error: uninitialized reference member ‘test::m_val’                                                                             
//    test(int val) { m_val = val; } // test.cpp:7: error: uninitialized reference member ‘test::m_val’                                                        

    int& m_val;
};