出来工作后,才发现原来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. }

其中,要注意的地方就是引用类型的成员变量的初始化问题,它不能直接在构造函数里初始化,必须用到初始化列表,且形参也必须是引用类型。
    凡是有引用类型的成员变量的类,不能有缺省构造函数。原因是引用类型的成员变量必须在类构造时进行初始化。
    如果两个类要对第三个类的数据进行共享处理,可以考虑把第三个类作为这两个类的引用类型的成员变量。

C++ 类成员引用变量的使用相关推荐

  1. 编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款

    查看本章节 查看作业目录 需求说明: 某用户共有两张银行卡,账户名称相同,但卡号和余额不同.模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路: 项目中创建账户类 Account,类中 ...

  2. 声明银行账户类 java_编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款...

    查看本章节 查看作业目录 需求说明: 某用户共有两张银行卡,账户名称相同,但卡号和余额不同.模拟用户使用这两张银行卡进行消费的过程,并打印出消费明细 实现思路: 项目中创建账户类 Account,类中 ...

  3. java面向对象的概念,Java类、引用变量与堆对象

    一,面向对象概念 1.类型(类) 指一个名词概念,如:老师,学生,图书 2.引用(变量) 指引用具体概念实例的代词,如:某人.某物 3.对象(东西) 指具体概念的个体实例,如:张无忌这个人. 4.行为 ...

  4. 使用Mockito对类成员变量进行Mock

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Mock ...

  5. C++ static 类成员

    节选自<C++ Primer>,还是书上写的最清楚. 12.6. static 类成员 对于特定类类型的全体对象而言,访问一个全局对象有时是必要的.也许,在程序的任意点需要统计已创建的特定 ...

  6. C++---类成员变量定义为引用

    C++---类成员变量定义为引用 摘要:类成员变量是可以定义为引用类型的,但是我们需要注意一下用法 note1:在类中定义引用变量, 必须要在初始化列表中初始化该成员变量(const 类型数据成员也必 ...

  7. 一个类怎样引用另外一个类的成员变量或方法

    通常常用的有:A类有个变量C,B类想调用C方法一:变量C是非静态的(static),那么在B类中创建一个A类的对象,用对象.变量名就可以了方法二:变量C是静态的(static),直接用类.变量名 详细 ...

  8. java实例变量成员变量_Java的类成员变量、实例变量、类变量,成员方法、实例方法、类方法...

    总是被这些相似的概念搞晕,查阅了资料后做个小总结,以变量为例,方法辨析类似. 1.多胞胎名字汇总辨析 成员变量和成员方法是范围最大的定义,提到成员变量就可以理解成你所定义在一个类体中的各类变量的统称, ...

  9. 【转】Java类成员变量默认初始化规则

    一个变量作为类成员使用的时候,如果没有被初始化,java会为其分配默认值: -------------------------------------------------------------- ...

最新文章

  1. linux shell map dict 字典数组
  2. 大型网站演化发展历程之三
  3. 中原银行张本晨:中原银行数字化营销体系建设实践
  4. 招聘职位:ERP咨询顾问(广州、厦门)
  5. 《乌合之众》读书笔记(part5)--名望的特性就是阻止我们看到事物的原本面目,彻底麻痹我们的判断力
  6. 回信,我的好朋友王一涵
  7. SAP License:新总账的表结构
  8. 黎明杀机手游未能连接服务器,黎明杀机无法连接在线服务及EAC绿条读完后无反应解决方法...
  9. iOS Mac终端 生成模拟器与真机都能运行的.a静态库
  10. 函数 strncpy、strncat、strncmp、strrchr 的实现
  11. React Native 接入微博、微信、QQ 登录功能
  12. Linux中创建LVM详细步骤
  13. springboot自定义starter启动器
  14. 【题解】【AcWing】1564. 哈希
  15. iOS中获取NSError错误信息汇总
  16. 家谱树java_树家族算法梳理
  17. iPhone 录音如何去除背景杂音增强录音品质
  18. RTL8723BU wifi 及 热点移植和测试
  19. ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结
  20. 2.5单星和双星运算符的作用

热门文章

  1. 群晖 上传 源文件不存在_群晖NAS连接百度网盘报错?原因是这样的
  2. java mongo api_MONGODB的javaAPI简单应用
  3. powerbi导入地图_Power BI系列教程之powerBI功能介绍及使用导引(一)
  4. 计算机系统的指令系统,计算机指令系统指的是什么呢?
  5. chrome 占用大量内存直到网页崩溃_Chrome吃内存太夸张!几招解决Chrome占内存硬伤...
  6. 怎么解决交换机端口不正常问题?
  7. 什么是光纤收发器?光纤收发器作用是什么?
  8. 【渝粤教育】电大中专电商运营实操 (19)作业 题库
  9. 【渝粤题库】国家开放大学2021春2332高等数学基础题目
  10. linux 信号量锁 内核,Linux内核信号量互斥锁应用