c++:类中成员变量是引用

#include <iostream>
using namespace std;
class A
{
public:
    A(int i=3):m_i(i){}
    void print()
    {
        cout<<"m_i="<<m_i<<endl;
    }
private:
    int m_i;
};
class B
{
public:
    B(){}
    B(A& a):m_a(a){}
    void display()
    {
        m_a.print();
    }
private:
    A& m_a;
};
int main(int argc,char** argv)
{
    A a(5);
    B b(a);
    b.display();
    return 0;
}

[注意]:引用类型成员变量的初始化:

     1,不能直接在构造函数里初始化,必须用到初始化列表,且形参也必须是引用类型。

     2,凡是有引用类型的成员变量的类,不能有缺省构造函数。原因是引用类型的成员变量必须在类构造时进行初始化。
     3,如果两个类要对第三个类的数据进行共享处理,可以考虑把第三个类作为这两个类的引用类型的成员变量。

 

posted @ 2015-05-07 13:48  仰止  阅读(333)  评论(0)    收藏  举报