OOP 1.1 引用
1.1 引用
1、语法:类型名&引用名=某变量名 e.g. int &b=a;
- 定义:引用则等价这个变量
- 引用名的类型是:类型 &
- 注意事项:
- ①定义引用时,一定要将其初始化成引用某个变量
- ②初始化后,它就一直引用该变量,不会再引用别的变量
- ③引用只能引用变量,不能引用常量、表达式
- ④引用一个引用是合法的 e.g.
int &b=a;int &c=b//legal
2、引用实例:swap函数
- c 指针:
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
swap(&n1,&n2);
- c++ 引用:
void swap(int &a,int &b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
swap(n1,n2);
3、引用可作为函数的返回值
int n=4;
int &f(){return n;}
f()=40;
cout<<n;//output 40
4、常引用
- 语法:const 类型 & 引用名=某变量名 e.g.:
const int &B=A;
- 引用名的类型是 const 类型&
- 不能通过常引用修改其引用的内容
5、引用与常引用的关系
- T& 或者 T 可以初始化const T&的引用
- const T和const T&不能初始化T& (除非强制类型转化)
e.g.
int A;
int &B=A;
const int &C=B;
const int &D=A;
int & E=C;//ILLEGAL
const int &F=C;
OOP 1.1 引用的更多相关文章
- Atitit.java c#这类编程语言的设计失败点attilax总结
Atitit.java c#这类编程语言的设计失败点attilax总结 1. Npe1 2. Api粒度过小而又没有提供最常用模式1 3. checked exception(jeig n jyejy ...
- 高端面试必备:一个Java对象占用多大内存
这个问题一般会出现在稍微高端一点的 Java 面试环节.要求面试者不仅对 Java 基础知识熟悉,更重要的是要了解内存模型. Java 对象模型 HotSpot JVM 使用名为 oops (Ordi ...
- 【PHP面向对象(OOP)编程入门教程】7.特殊的引用”$this“的使用
现在我们知道了如何访问对象中的成员,是通过”对象->成员”的方式访问的,这是在对象的外部去访问对象中成员的形式, 那么如果我想在对象的内部,让对象里的方法访问本对象的属性, 或是对象中的方法去调 ...
- 跟着百度学PHP[4]OOP面对对象编程-5-内部引用$this
$this就是对象内部代表这个对象的引用 可以调用被封装的方法或者属性! <?php class Person{ private $name; "; var $sex; functio ...
- 从OOP的角度看Golang
资料来源 https://github.com/luciotato/golang-notes/blob/master/OOP.md?hmsr=toutiao.io&utm_medium=tou ...
- 玩转JavaScript OOP[2]——类的实现
概述 当我们在谈论面向对象编程时,我们在谈论什么?我们首先谈论的是一些概念:对象.类.封装.继承.多态.对象和类是面向对象的基础,封装.继承和多态是面向对象编程的三大特性. JavaScript提供了 ...
- PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...
- C++中 OOP相关的类型转换
我们都知道,在C++中有很多类型转换.今天在这里,我们不讨论普通变量的类型转换(比如int转换成double等等).本文主要讨论面向对象相关的类型转换:向上转换和向下转换. 首先,我们定义一个基类Ba ...
- 面向对象的OOA、OOD、OOP
OOA Object-Oriented Analysis:面向对象分析方法 是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题.OOA与结构化分析有较大的区别.OOA所强调的 ...
随机推荐
- 基于jQuery的轮播焦点图图
轮播焦点图 ——仿淘宝首页jquery轮播焦点图,我特意去taobao首页看了下它的轮播,好像有点相似,我不保证是我写的这样. 本例来源:站长之家http://sc.chinaz.com/jiaobe ...
- Python中级 —— 06SMTP发送电子邮件
Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务.(未完)
- Linux系统查找清理磁盘大文件
本文主要介绍Linux系统磁盘使用空间不足时,如何查找大文件并进行清理的方法. 使用df-h检查一台服务器磁盘使用空间,发现磁盘已经使用了100%,其中/dev/mapper/vg_iavp-lv_r ...
- T6跨账套辅助工具[v1.04]
[v1.03] 增加自定义报表,用户可以自行设置报表所打开的数据表,然后设置查询条件 [v1.04]更改单据显示样式,直接以用友打印预览的方式显示,允许用自定义显示,打印样式 下图为新的显示样式 下图 ...
- 远程查看java虚拟机内存使用情况jconsole
jconsole 查看虚拟机使用情况 1.在远程机的tomcat的catalina.sh中加入配置: JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.host ...
- 20155207王雪纯 2006-2007-2 《Java程序设计》第1 周学习总结
20155207王雪纯 2006-2007-2 <Java程序设计>第1 周学习总结 教材学习内容总结 第一周重点学习第一章和第二章. 第一章总的来讲,我认为可以称之为本书的绪论,介绍了包 ...
- 20155214 2016-2017-2 《Java程序设计》第3周学习总结
20155214 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 Chapter4 一个原始码中可以有多个类定义,但只能有一个公开类,且文档中的主文档名必须与 ...
- Java集合——LinkedList源码详解
)LinkedList直接继承于AbstractSequentialList,同时实现了List接口,也实现了Deque接口. AbstractSequentialList为顺序访问的数据存储结构提供 ...
- 【AHOI2013】差异
题面 题解 $ \because \sum_{1 \leq i < j \leq n} i + j = \frac{n(n-1)(n+1)}2 $ 所以只需求$\sum lcp(i,j)$即可. ...
- 在 Centos7 用Jexus服务器 运行.Net Core 只需几部
1.安装 .Net SDK 不需要按照 .net core runtime,sdk 依赖于运行时会自动安装 第一步 添加dotnet源 sudo rpm -Uvh https://packages.m ...