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,如果两个类要对第三个类的数据进行共享处理,可以考虑把第三个类作为这两个类的引用类型的成员变量。

浙公网安备 33010602011771号