c++学习笔记--引用&
来源:互联网 发布:名器哪款接近真人知乎 编辑:程序博客网 时间:2024/04/29 07:34
引用:引入对象的一个同义词,不会产生新的对象!
例如:
point p1(m,n);
point &p2=p1;//p2为p1的同义词,改变p2的同时也会改变p1,但是编译器并没有给p2单独分配内存,他和p1是共用一块内存的!
引用和const一样,必须马上初始化~
例如如下类:
class point
{
public:
point(int m);//构造函数
private:
int x;
const int y;
int &z;
}
point::point(int m)
{
x=m;
y=m;//error
z=m;//error
}
对于类的成员中有引用或者const类型时,必须在初始化列表中进行初始化,而不能在函数体内赋值。
上述构造函数应该这样初始化:
point::point(int m)
:x(m),y(m),z(m)
{}//OK
引用的应用:
1.传递可变参数
传统的c中,函数在调用时参数是通过值来传递的,这就是说函数的参数不具备返回值的能力。在c++中,可以通过引用来将变化的参数值传回。
例如:
void max(int x,int y,int z)
{
z=x+y;
}
如果我们的函数声明为void,但是又希望得到z的值,这时我们就可以用引用,这样定义:
void max(int x,int y ,int &z)
{
z=x+y;
}
这样在main()中可以这样写
int m;
max(3,10,m);
这样z就是m的引用,因为他们共用一块内存,因此z改变的时候m也会改变。
2.传递较大的对象时,可以使用引用来减少实参向形参传递时复制的麻烦。
3.引用返回值:
如果一个函数返回了引用,那么该函数的调用也可以被赋值。这里有一函数,它拥有两个引用参数并返回一个双精度数的引用:
double &max(double &d1,double &d2)
{ return d1>d2?d1:d2; }
max()函数返回一个对双精度数的引用,那么我们就可以用max() 来对其中较大的双精度数加1:
max(x,y)+=1.0;
- C++primer学习笔记--右值引用
- C++Primer 学习笔记之指针和引用
- C/C++学习笔记11:指针与引用的区别
- Object C 自动引用计数ARC 学习笔记
- C/C++程序设计学习笔记三:通过指针引用数组
- 【《Objective-C 高级编程》 学习笔记--引用计数】
- 《More Effective C++》学习笔记之一引用与指针
- C++primer学习笔记——引用和指针
- 【C++】学习笔记四十——引用变量
- 【C++】 引用学习
- c++学习笔记--引用&
- “引用”学习笔记
- c++引用学习笔记
- 《学习bash》笔记--引用
- c++学习笔记--引用
- 常引用学习笔记
- c++学习笔记-----引用
- 【C++学习笔记】引用
- OpenID流程概述及其与OAuth的区别
- elastix 1.6 安装Openvox AE2410P 笔记
- Android IPC机制详解
- 有关java bean一些学习体会
- 应用实例三
- c++学习笔记--引用&
- 转自【柳永法】SQL统计:从北京到天津的与从天津到北京的汇总到一起 常用sql语句 SQL Server 生成版权信息及测试环境信息
- 特征值与特征向量概念
- x509及其ASN.1表示法
- DataGridView(自定义表格)
- VoIP基本原理与发展历程(1)
- Set是如何实现“没有重复元素”
- EFI下的Guid Partition Table Format
- 动态sql语句基本语法