引用小结

原创 2006年06月06日 22:35:00
1.   定义的时候应该将引用运算符放在类型名后面,如
int& rInt;
虽然int &rInt;   int & rInt; 都是对的,但是最好还是不要这样做。
2.   引用的地址与所引用的目标的地址是同一地址,如
int& rInt = intOne;
这样&rInt的值和&intOne的值是一样的。
3.   引用一旦初始化,就钉在初始的目标上。任何对该引用的赋值都只是对引用的目标赋值,而不是将引用钉在另一个目标上。如
int intOne = 5;
int intTwo = 8;
int& rInt = intOne;
rInt = intTwo;
这样3个变量的值都是8,但是intOnerInt占用同一内存,intTwo占用另一内存。并没有由于执行了rInt = intTwo,而说rIntintTwo占用同一内存。
4.   下面的代码是合法的:
double& rr = 1;
这条语句解释为:
double temp;
temp = double(1);
double& rr = temp;
5.   void进行引用是不允许的。例如: void& a =3;
6.   不能建立引用的数组:
int a[10];
int& ra[10] = a;   //error
因为数组名是该元素集合空间的起始地址,已经不是一个名副其实的数据类型了。
7.   引用不是类型,所以没有引用的引用,也没有引用的指针,如下是错的:
int& ra = a;
int& * p = &ra;            //error,企图定义引用的指针
8.   有空指针,无空引用:
int& ri = NULL;           //无意义
9.   由于指针也是变量,所以可以有指针变量的引用:
int* a;
int* & p = a;      //表示int *的引用p初始化为a
int b = 8;
p = &b;         //OK
10.函数返回值时,要生成一个值的副本,而用引用返回值时,不生成值的副本。
11.传递参数时,用引用和指针,容易在函数内无意中修改了目标的值。保护时参不被修改的办法是传递const指针和引用。
12.对引用的初始化,可以是变量,可以是常量,也可以是一定类型的堆空间变量。但是,由于引用不是指针,所以直接从堆中获得变量空间来初始化引用是错的:
    int& a = new int(2);        //error,可能分配空间失败
    正确的做法应该是:
    int* pInt = new int;
    if(pInt ==NULL)
    {
       cout<<”error memory allocation”;
       return;
    }
    int& rInt = *pInt;

相关文章推荐

block使用小结、使用block、如何防止循环引用

引言 使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题 : 【小测试】你真的知道blocks在Objective-C中是怎么工...

block使用小结、在arc中使用block、如何防止循环引用、weak–strong dance

Block简介 Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内...

C++ +小结2 继承, 多态和引用

#include using namespace std; // 继承机制 class Animal { public: // 如果在父类中只定义了一个有参数的构造函数,而没有显示定一个...

block使用小结、在arc中使用block、如何防止循环引用

引言 使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题 : 【小测试】你真的知道blocks在Objective-C中是...
  • eqera
  • eqera
  • 2014年02月17日 15:16
  • 3703

block使用小结、在arc中使用block、如何防止循环引用(zz)

zz from http://www.cnbluebox.com/?p=255 引言 使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于b...

block使用小结、在arc中使用block、如何防止循环引用(zz)

标签:  __block   __weak   arc   self   cfgetretaincount 分类: iOS zz ...

Java学习IO流小结--字节流

  • 2015年07月11日 14:59
  • 218KB
  • 下载

CSS小结有关整体

  • 2014年10月25日 19:31
  • 36KB
  • 下载

日常小结-java静态类及其应用

概述静态类的三个主要特效、常用的使用方式以及设计思想。

蜂鸣器小结1

  • 2012年11月08日 21:58
  • 278B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:引用小结
举报原因:
原因补充:

(最多只允许输入30个字)