出来工作后,才发现原来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;
 - }
 
    其中,要注意的地方就是引用类型的成员变量的初始化问题,它不能直接在构造函数里初始化,必须用到初始化列表,且形参也必须是引用类型。
    
    凡是有引用类型的成员变量的类,不能有缺省构造函数。原因是引用类型的成员变量必须在类构造时进行初始化。
    
    如果两个类要对第三个类的数据进行共享处理,可以考虑把第三个类作为这两个类的引用类型的成员变量。
   
 
版权声明:本文为tzdjzs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。