引用1
来源:互联网 发布:java 生成6位随机数 编辑:程序博客网 时间:2024/04/29 23:26
//本章的主题包括 引用、文本(const)、文本表达式(constexpr)、静态(static)、外部(extern)、类型定义(typedef)、类型别名(aliases)、类型转换、作用于解析、统一初始化、可选函数语法、空指针文本、尖括号(angle bracket)、初始化列表、显示转换运算符、特性(attribute)、用户自定义文本、头文件、可变长度参数列表以及预处理器宏。/** 常识:C++ 中,引用是变量的别名。 int x = 3; int &xRef = x; //引用变量在创建的时候必须初始化 */int main(){ //常识:引用变量在创建的时候必须初始化 int x = 3; int &xRef = x; //引用变量在创建的时候必须初始化 xRef = 10; //通过xRef将x的值设置为10 //特殊:引用数据成员 /** 无法在类外面声明一个引用而不初始化 int & emptyRef; 对于包含类而言需要在构造函数初始化器中初始化引用数据成员, 引用数据成员 class MyClass{ public: MyClass(int& ref):mRef(ref){} protected: int& mRef; }; */// int& unamedRed1 = 5; //不能编译 ,改变文本5 是没有意义的,下面则可以 const int& unnamedRef2 = 5; //常识:在初始化引用之后无法改变引用所指的变量,而只能改变变量的值 int x1 = 3,y1 = 4; int& xRef1 = x1; xRef1 = y1; //xRef = &y;这样是不能编译的,因为&y是y的地址是一个指针,但是xRef是一个int的引用,只是x的别名,不是指针的引用。 int x2 = 3,z2 = 5; int xRef2 = x2; int zRef2 = z2; zRef2 = xRef2; //zRef2的值改为3 而已,没有改变引用。 //常识:你就把引用当做别名,以下都好理解了,//重点:这其实就是指针的引用,表示这是指针的别名,先*再& int* intp; int*& ptrRef = intp; //这其实就是指针的引用,表示这是指针的别名,先*再& ptrRef = new int; *ptrRef = 5; int x3 = 3; int& xRef3 = x3; int* xPtr3 = &xRef3; //&xRef3 这就是取变量 x3 的地址,然后自然要赋给指针变量了。 *xPtr3 = 100; int x4 = 3; int& xRef4 = x4;// int&& xDoubleRef = xRef4; //引用的引用是不行的,c++11 意味这是右值引用。// int&* refPtr = &xRef4; //指向引用的指针,也是不行的 return 0;}
0 0
- 引用1
- Ext.js5引用和引用持有者(1)
- C#引用类型(1)
- 持有对象引用1
- 引用和指针1
- perl的引用<1>
- Perl--引用<1>
- 引用作形参(1)
- PERL<引用1>
- 引用类型(1)
- WF对象引用1
- 引用计数练习1
- 【1】引用计数基本知识
- C++与引用1
- 1、C++中的引用
- 1 Java引用介绍
- 函数返回引用1
- 引用
- bzoj2102 [Usaco2010 Dec]The Trough Game
- Tcl/Tk: 输出、赋值与替换
- error: intel ipp库中的错误:No dlls were found in the waterfall procedure
- 笔试经验1
- MINA学习笔记
- 引用1
- Tcl/Tk: 数学表达式与 expr 命令
- SSL协议详解
- 关于SSH secury shell中R编程绘图图像显示问题
- 表格(单元格放置组件)
- 系统调用跟我学(2)
- Java多线程同步的一层对象/二层对象/三层对象写法对比
- 黑马程序员——C语言数组
- nyoj255 C小加之随机数