复习5:名字和引用

1.一个名字表示“内存中是什么东西”,这即是最简单最基本的“对象”的概念,对象就是“内存中一片连续的区域”,不要与类对象的高级概念相              混淆.

2.引用就是对象的别名,在声明引用时必须对它初始化,此后它只能从一而终,不能再引用其他的对象了.

    int& r=i; r=j;的含义是把j的值赋给i,而不是讲r引用j.

    如果 int& r = i; 那么&r将返回i的地址.

    引用的一种实现方式是把它作为一个常量指针,在每次使用它的时候都自动地做间接访问.在某些情况下,编译器可以通过优化去掉引用,使得在   执行时根本不存在任何表示引用的东西.

    引用的初始式是一个左值,引用的类型和初始式值类型不同时会做隐式类型转换.对于一个const T&的初始式不要求一定为左值,在这种情况下:

    首先,如果需要将做隐式类型转换.

    然后,将结果存入一个类型T的临时变量.

    最后,将此临时变量用做初始式的值.

    考虑 const double& cdr = 1;

    它的解释是,double temp = double(1);  const double &cdr = temp;

    引用的引用的作用和引用一样,对他们的操作都作用于被引用的对象。

3.使用引用做函数的参数与返回值的效果等同指针.

   但要注意使用返回值为引用的函数,对返回值的操作结果都将作用于引用的对象上.


ps:

声明与定义的区别在于定义除了给对象起个名字在外(声明的功能),该名字还关联到了引用实体.

左值就是引用某个对象的表达式.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值