引用---基本特性
来源:互联网 发布:安庆市网络问政 编辑:程序博客网 时间:2024/06/18 08:07
1.引用的基本特性
一.引用即别名
•声明一个标识符为引用,即表示该标识符可作为另一个有名或无名对象的别名
–int a = 10; int& b = a; int& c = b; ++c; cout << a << endl; // 11 int const& d = c; ++d; // ERROR
•在C++中,无名对象通常都被处理为右值,只能通过带有常属性的引用引用之
–int const& a = 10; // 纯右值 int const& b = 20; int const& c = a + b; // 将亡右值
二.引用必须初始化
•引用必须在定义的同时初始化,不允许先定义再赋值
–int a = 10; int& b = a; // OK–int a = 10; int& b; // ERROR b = a;
三.引用不能为空
•无法定义一个什么都不引用的引用
–int& r = NULL; // ERROR
•但“野引用”或称“悬空引用”确实是存在的
–int& r = *new int (1);
++r;
cout << r << endl; // 2
delete &r;
++r; // 未定义
•解引用一个野引用,就跟解引用一个野指针一样,其结果将是未定义的,可能导致崩溃(段错误),
可能意外地修改了其它有效堆内存中的数据,也可能什么也没有发生而且结果还很正确,
但没有人能保证到底会是哪种结果
三.引用不能更换目标
•引用一经初始化便不能再引用其它对象
–int a = 10, b = 20; int& c = a; // c是a的引用,a是c的目标 c = b; // 将b的值赋给c的目标即a,而非令c引用b
•引用只有在其定义及初始化语境中具有“名”语义,一旦完成了定义及初始化,
引用就和普通变量名一样,被赋予了“实”语义,即代表它的目标,而不是别名本身
阅读全文
0 0
- 引用---基本特性
- 语言特性-引用
- NRF24L01芯片基本特性
- C++基本特性(2)
- SQLite3.6.23基本特性
- BPEL的基本特性
- solr基本特性
- margin的基本特性
- 表格的基本特性
- C++基本特性
- Qt基本特性
- 二、matlab基本特性
- WebSphere--基本特性
- 数据库基本特性
- RDD基本特性
- Sass入门-基本特性
- HTML-CSS基本特性
- 操作系统的基本特性
- Pandas读入Excel数据表格与数据简单处理
- 2017 Multi-University Training Contest
- 每日英语阅读(二十)
- Intent跳转传值(ImageLoader加载图片)
- 2017.07.27回顾 ET和RT比较 高级切片 argsort barplot(yerr=) xgb.plot_importance
- 引用---基本特性
- Android shape相关
- js和servlet之间用json的数据格式进行交互
- UI设计切图规范指南
- hdu 3333 Turing Tree (主席树)
- OKhttp的简单使用
- 关于mybatis动态创建数据库表的相关操作
- 类似dubbo的分布式RPC框架
- 图像处理之提取水平线和垂直线