因为引用类型的成员变量定义时需要赋值,不然其所在的类初始化时有编译错误,所以一直以为不能使用引用类型的变量作为成员变量。但在探讨C++的前置声明知识时,发现是可以定义引用类型的成员变量的。

如下讲解一下如何使用引用类型的成员变量。

//AAA.h
#pragma onceclass BBB;class AAA
{
public:AAA(BBB &x);~AAA();private:BBB &b;
};#include "AAA.h"
AAA::AAA(BBB &x) : b(x)
{
}AAA::~AAA(void)
{
}//BBB.h
#pragma onceclass AAA;class BBB
{
public:BBB(void);~BBB(void);void NewAAA();private:AAA *a;
};//BBB.cpp
#include "BBB.h"
#include "AAA.h"BBB::BBB()
{NewAAA();
}BBB::~BBB(void)
{
}void BBB::NewAAA()
{BBB b;a = new AAA( b );
}//main.cpp
#include <iostream>int main()
{return 0;
}

如上程序所示,在AAA的头文件中定义了引用类型的成员变量,在AAA的构造函数初始化列表中对其进行了初始化,达到了“使用引用类型的成员变量”的目的。

注意,引用类型的成员变量的初始化必须在构造函数的初始化列表中进行初始化。

转载于:https://blog.51cto.com/weiyuqingcheng/1842384

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

  1. Java的多态形式中,如何访问成员变量和调用成员方法

    父类的引用指向子类的对象: Fu obj = new Zi(); int num = obj.num; obj.show(); obj.methodZi(); 1.如果父类和子类都有成员变量 num, ...

  2. python中的类的成员变量以及property函数

    1 python类的各种变量 1.1 全局变量 在类外定义的变量. 1.2 类变量 定义在类里面,所有的函数外面的变量.这个变量只有一份,是所有的对象共有的.在类外用"类."来引用 ...

  3. java中多态父类的成员变量和方法调用问题

    class Super {String name = "父类名字";public void setName(String name) {System.out.println(thi ...

  4. C语言边角料:结构体中指针类型的成员变量,它的类型重要吗?

    一.前言 昨天在编译代码的时候,之前一直OK的一个地方,却突然出现了好几个 Warning! 本着强迫症要消灭一切警告的做法,最终定位到:是结构体内部, 指向结构体类型的指针成员变量导致的问题. 这个 ...

  5. java中的局部变量、成员变量、类变量

    局部变量:在方法.构造函数或者语句块中定义的变量被称为局部变量. 特点:变量的声明和初始化都是在方法中,方法结束后,变量就会自动销毁. 例:下面代码块的s2 成员变量:成员变量是定义在类中,方法体之外 ...

  6. java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况

    /* 样例1:class Parent{int num = 3;}class Child extends Parent{int num = 4;} *//* 样例2: class Parent{}cl ...

  7. Java中合理使用局部变量替代成员变量、静态变量

    故事起因 一个Java类中可以存在多种形式的变量,可以是最一般的成员变量.或静态变量.或临时变量.如下图: public class VariableDemo {static int staticVa ...

  8. Python中的类变量和成员变量

    代码演示: class Test(object):a = 100 # a是类变量,可以由类名直接调用,也可以由类的对象来调用def __init__(self):self.b = 200 # b是成员 ...

  9. 在Objective C中定义私有的成员变量

    使用了LLVM以后,终于可以定义私有的成员变量了. @interface RadioViewController () { @privateUIBackgroundTaskIdentifier tas ...

  10. hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化

    hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...

最新文章

  1. 述职答辩提问环节一般可以问些什么_2020上海市职称评审答辩注意事项
  2. exe4j打包exe_Java日常实用技巧之程序打包为可执行文件
  3. 【计算机基础】 操作系统总结(未完)
  4. 深入理解:一文讲透RabbitMQ
  5. Unix Tutorial Four
  6. Roboware主题配置教程
  7. Matlab的dq变换模块到底选哪一种变换方式?90 degree behind phase A axis和 Aligned with phase A axis有什么区别?
  8. iOS开发-Xcode8兼容iOS7手记
  9. 最新最全的vue面试题+详细解答
  10. 如何在Excel选取想要的数据(特定行)
  11. 简单封装retrofit2+rxjava2
  12. Sass系统技术选型笔记(3)DB
  13. 爬取豆瓣电影分类排行榜
  14. 2020华师大个人考研总结
  15. Chapter04 编写基本的MapReduce程序(一) 专利数据集实战一
  16. 标梵微信小程序开发价格之做一个小程序要多少钱?
  17. 你了解CNAS认证吗?
  18. 同步时钟之hwclock命令(硬件-系统,系统-硬件)
  19. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储
  20. 发布包到maven公共仓库图文教程(1) --- 注册账号和提交申请

热门文章

  1. 计算机保研-中科大计算机
  2. 【LeetCode】【字符串】题号:383. 赎金信
  3. Error : Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so
  4. 全排列——深度优先搜索
  5. python下GDAL库安装——以pycharm编译器为例
  6. 【ArcGIS|空间分析|网络分析】1 创建网络数据集
  7. windows 64位PHP5.5配置xhprof
  8. 算法笔记-------快速排序
  9. Java数值溢出问题以及简单的算法实例
  10. Spring集成quartz实现的定时任务调用