关于应用(reference)的笔记

应用的目的是:

1,希望得以直接对所传入的对象进行修改。

 2,为了降低赋值大型对象的负担。效率问题。

以引用的方式传递对象当作函数参数,对象本身并不会复制出另一份---复制的是对象的地址。函数中对该对象进行的任何操作,都相当于对传入的对象进行间接的操作。

但是要注意其和指针传值时的区别:

区别1:在于使用方法不同:

引用:f(vector<int> &vec){vec[i]};

           main()

          {

                int ia[3]={1,2,3};

               vector<int> vec(ia,ia+3);

               f(vec);

          }  

指针:f(vector<int> *vec){(*vec)[i]};

           main()

          {

                int ia[3]={1,2,3};

               vector<int> vec(ia,ia+3);

               f(&vec);

          }  

区别2:指针可能指向某个NULL的地方,所以在使用的时候要先确定其值并非为0;而引用则一定代表某个对象,不需要进行检测。

建议:除非在函数内更改参数值,否则建议不要使用传地址。传址机制主要用于“传递class objects之用”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值