-
#include
- using namespace std;
- class A
- {
- public:
- A(int i=3):m_i(i){}
- void print()
- {
-
cout<<"m_i="<
- }
- 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,如果两个类要对第三个类的数据进行共享处理,可以考虑把第三个类作为这两个类的引用类型的成员变量。
转载地址:http://blog.sina.com.cn/s/blog_5daeefb30100n1n0.html