类的拷贝构造函数的参数

T& operator=(T t);
那么我们调用
T t1;
T t = t1;时,拷贝构造函数被调用,
这样就出现了,要把operator=(T t);压栈时会临时生成一个T对象t2,t2靠什么而来?当然,这个对象(t2)也是“拷贝构造”的,那么要靠新的构造了...那么要构造tn又要新的拷贝(同个道理),那么就是个恶性循环了,内存出错

如果使用引用的话,不会有新对象的构造,那么也不会有这种恶性循环了

引用是一种没有指针语法的指针.与指针一样,引用提供对对象的间接访问.
传指针时,我们可以通过指针来修改它在外部所指向的内容。但如果要修改外部指针所指向的对象是不可能的。例如传递外部指针到函数内来分配空间,必须传递指针的指针或指针的引用。
(1)引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值.

(2)不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL.

(3)引用一旦被初始化为指向一个对象,它就不能被改变不另一个对象的引用;而指针在任何时候都可以改变为指向另一个对象.给引用赋值并不是改变它和原始对象的绑定关系.

(4)引用的创建和销毁并不会调用类的拷贝构造函数

(5)在语言层面,引用的用法和对象一样;在二进制层面,引用一般都是通过指针来实现的,只不过编译器帮我们完成了转换.

总的来说:引用既具有指针的效率,又具有变量使用的方便性和直观性. 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值