C++ 类成员引用变量的使用

  • Post author:
  • Post category:其他


出来工作后,才发现原来C++的类成员变量可以是引用变量。下面通过一个例子来说明(虽然没多大意义):


  1. #include <iostream>

  2. using


    namespace

    std;

  3. class

    A
  4. {

  5. public

    :
  6. A(

    int

    i=3):m_i(i){}

  7. void

    print()
  8. {
  9. cout<<

    “m_i=”

    <<m_i<<endl;
  10. }

  11. private

    :

  12. int

    m_i;
  13. };

  14. class

    B
  15. {

  16. public

    :
  17. B(){}
  18. B(A& a):m_a(a){}

  19. void

    display()
  20. {
  21. m_a.print();
  22. }

  23. private

    :
  24. A& m_a;
  25. };

  26. int

    main(

    int

    argc,

    char

    ** argv)
  27. {
  28. A a(5);
  29. B b(a);
  30. b.display();
  31. return 0;
  32. }

其中,要注意的地方就是引用类型的成员变量的初始化问题,它不能直接在构造函数里初始化,必须用到初始化列表,且形参也必须是引用类型。

凡是有引用类型的成员变量的类,不能有缺省构造函数。原因是引用类型的成员变量必须在类构造时进行初始化。

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



版权声明:本文为tzdjzs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。