摘要:类成员变量是可以定义为引用类型的,但是我们需要注意一下用法

note1:在类中定义引用变量, 必须要在初始化列表中初始化该成员变量(const 类型数据成员也必须在初始化列表中进行初始化)

#include <iostream>
using namespace std; class A {
public:
A(int k):a(n){ // 必须要在初始化列表中进行初始化
n = k;
cout << a <<endl;
}
int get() const {
return n+;
}
private:
int n;
int &a;
}; int main(){
A a();
cout << a.get() <<endl;
return ;
} // 输出结果
// 10
//

note2:初始化后的引用变量所占用的内存空间和普通变量相同

#include <iostream>
using namespace std; class A {
public:
A(int k):a(k){}
int &a;
}; int main(){
A a();
cout << sizeof(a) <<endl;
return ;
} // 输出结果(VS2013 32位编译器)
//

C++---类成员变量定义为引用的更多相关文章

  1. static 类成员变量 和 static const类成员变量

    1.使用static类的优点: (1)避免与其他类的成员或者全局变量冲突 (2)可以封装 (3)阅读性好 2.static 数据成员独立于该类的任意对象而存在 static数据成员的类型可以是该成员所 ...

  2. c# 类成员的定义 定义方法、字段和属性【转】

    c# 类成员的定义 定义方法.字段和属性c#类的成员包括字段.属性和方法.所有成员都有自己的访问级别,用下面的关键字之一来定义:public----成员可以有任何代码访问:private----成员只 ...

  3. Objective-C类成员变量深度剖析

    目录 Non Fragile ivars 为什么Non Fragile ivars很关键 如何寻址类成员变量 真正的“如何寻址类成员变量” Non Fragile ivars布局调整 为什么Objec ...

  4. Qt一个project调用还有一个project的类成员变量

    一句两句话已经不能表达如今的激动情绪了.唯有感叹知识的博大精深,并把感叹转变为文字. 同一个project调用其它类成员变量很easy. 如: 定义 Test1.h中申明成员变量 class A { ...

  5. c++ 类成员变量初始化总结

    最近在学习c++,不同类型的c++成员变量在初始化的时候也有很有的区别,查了一些资料之后再此记录一下: #include<iostream> using namespace std; // ...

  6. C++嵌套类及对外围类成员变量的访问

    C++嵌套类及对外围类成员变量的访问 在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类. 定义嵌套类的目的在于隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象.这样可以提高类的抽象能 ...

  7. Objective-C类成员变量深度剖析--oc对象内存模型

    目录 Non Fragile ivars 为什么Non Fragile ivars很关键 如何寻址类成员变量 真正的“如何寻址类成员变量” Non Fragile ivars布局调整 为什么Objec ...

  8. 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...

  9. 编写Java程序,创建一个 Person 类,该类中有一个类成员变量 country、一个实例变量 name 和另一个实例变量 age。

    返回本章节 返回作业目录 需求说明: 创建一个 Person 类,该类中有一个类成员变量 country.一个实例变量 name 和另一个实例变量 age. country 表示地区,name 表示姓 ...

随机推荐

  1. pyinstaller打包PySide2写的GUI程序,调用ffmpeg隐藏CMD控制台解决方案

    1 问题描述 使用PySide2写了一个GUI程序,调用ffmpeg命令行工具,做简单的批量视频处理(调整帧宽度.帧高度.视频变速.降低视频码率达到限制视频大小),使用了ffmpeg. ffmpeg- ...

  2. Bug 佛祖镇楼

    原文链接:https://www.cnblogs.com/xdp-gacl/p/4198935.html // _ooOoo_ // o8888888o // 88" . "88 ...

  3. Spring 实战4学习笔记(转)

    http://blog.csdn.net/21aspnet/article/details/51386557 1.IOC装配Bean 参考[spring实战4 2.2],作者提倡无XML配置化. 1. ...

  4. border-radius 在 浏览器开发者工具移动端里是有效的,在真机是无效的。

    border-radius 在 浏览器开发者工具移动端里是有效的,在真机是无效的,怎么解决? 答案是 border-radius:20px !important 加上!important 就好了.

  5. Redis Sentinel 学习笔记

    转载出处: http://blog.csdn.net/lihao21 概述 Redis Sentinel 是用来实现 Redis 高可用的一套解决方案.Redis Sentinel 由两个部分组成:由 ...

  6. 给element的confirm加自定义指令

    问题描述,因为自定义指令一般直接加在页面html标签上,但是element封装好的confirm的确认按钮没法添加自定义指令,如图: 解决办法:加个其他的隐藏标签,监听撤销事件,让其他的标签自动触发c ...

  7. Ubantu学习笔记2

    又是新的一天,继续学习Ubantu命令 cat 可以查看文件内容 cat -n p.py 可以在查看文件内容的同时显示行号 cat -s p.py 可以将多行空白的地方进行合并成一行(输入空格的地方不 ...

  8. idea修改web项目的访问路径

    转 新建好了项目发现项目只能以localhost:8080这样的访问路径访问到主页,也就是index.jsp 那么之前我用eclipse新建的项目都是localhost:8080/xxx(项目名称)来 ...

  9. 【转】Java线程面试题 Top 50(转)

    不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程 ...

  10. 2.7 app的本地化(根据手机的系统进行语言切换)

    首先设计一个基本的界面:系统默认为英文 如图所示: 找到如下路径: res/values/strings/strings.xml 如图所示: 然后点击右上方的open editor 添加需要的字符串如 ...