标题:关于拷贝构造函数
取消只看楼主
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
 问题点数:0 回复次数:2 
关于拷贝构造函数
老师昨天留个作业
让我们讨论为什么拷贝构造函数要用引用

我认为是如果不用引用传递的实参将会给行参
同时调用行参的拷贝构函,然后又会调用行参的行参
一直下去系统资源有威胁
所以只能用引用
免去麻烦
请问各位 这个观点对吗
搜索更多相关主题的帖子: 函数 构造 拷贝 
2006-04-12 20:21
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
呵呵
2楼和我说的不是一个意思吗 但我理解不是你那个角度

就是例如 STUDENT(STUDENT )//不加&
student s(t);
那么S就会调用拷贝函数.
而实际上T的值给了一个中间变量(所有的非引用函数参数传递基本上都是调用一个隐型的中间变量做桥梁)  例如:函数返回值就是这样先return到一个中间变量然后在付给程序上的 因为要返回的值和你=号左面的作用域不同,需要一个桥梁
而在给中间变量时又会调用中间变量(假如TEMP)的拷贝函数,
再调用TEMP的中间变量TEMP1的拷贝函数....
这样就有个死循环了

而7楼说的我不敢认同  这里引用最好不要当指针理解 把它当成实参实体好一些

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-16 13:26
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
就是把拷贝构造函数里面引用去掉
为什么会不行
student(const student );
这个函数机理是什么

会引起无限调用

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-25 12:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-57137-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.453710 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved