| 查看: 1835 | 回复: 14 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
微尘、梦想木虫 (知名作家)
|
[求助]
复制构造函数问题
|
||
|
书上说:复制构造函数在以下3种情况下会被调用: 1、用类的对象去初始化该类的另一个对象时; 2、函数的形参是类的对象时; 3、函数的返回值是类的对象时。 程序: 问题:该程序在第三种情况时并没有调用复制构造函数,其执行结果为: 调用复制构造函数 10 40 调用复制构造函数 100 800 3 5 不知道为什么,谢谢各位指点!!! |
» 猜你喜欢
国社科系统bug了,是不是要放榜了?
已经有10人回复
现代”学阀”该如何界定
已经有9人回复
课题组招2027级博士 上海工程技术大学 激光智能制造方向
已经有4人回复
上海工程技术大学 激光智能制造课题组 2027级博士研究生招生
已经有3人回复
实名举报:华南理工大学物理与光电学院副院长李志远婚内两次出轨女学生(博士)
已经有16人回复
上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告
已经有11人回复
上海工程技术大学激光智能制造课题组招收博士研究生
已经有10人回复
申博发邮件
已经有11人回复
各位大神,目前国内有哪些比较好用的逆合成软件?
已经有12人回复
我的奶奶
已经有3人回复

【答案】应助回帖
★ ★
余泽成(金币+2): 鼓励交流! 2011-06-08 16:14:19
余泽成(金币+2): 鼓励交流! 2011-06-08 16:14:19
呃,我好像没有回答楼主的问题呃,再补上。![]() 正常情况下,返回一个对象需要调用一次复制构造函数将返回对象保存到一个安全的地方,然后删除栈对象,等到函数返回之后,再对保存好的对象操作。因此,这里必须有一次复制构造。 但是楼主困惑的这个问题并不是由复制构造函数引起的,而是由f()和g()这样的短函数引起的。C++有一个inline的特性,它阻止任何浪费时间的函数调用,inline关键字对编译器只能是建议,这无法直接控制。从结果来看,这里没有复制操作,实际上就是没有函数调用,换句话说,就是内联展开了。 |

11楼2011-06-08 12:40:49
libralibra
至尊木虫 (著名写手)
骠骑将军
- 程序强帖: 40
- 应助: 817 (博后)
- 金币: 12914.1
- 红花: 64
- 帖子: 2238
- 在线: 287.3小时
- 虫号: 696514
- 注册: 2009-02-05
- 专业: 计算机软件

2楼2011-06-07 21:36:08
微尘、梦想
木虫 (知名作家)
- 程序强帖: 6
- 应助: 2 (幼儿园)
- 贵宾: 0.353
- 金币: 4757.9
- 散金: 3089
- 红花: 31
- 沙发: 247
- 帖子: 8788
- 在线: 1125小时
- 虫号: 1203290
- 注册: 2011-02-14
- 专业: 制造系统与自动化

3楼2011-06-07 21:38:31
libralibra
至尊木虫 (著名写手)
骠骑将军
- 程序强帖: 40
- 应助: 817 (博后)
- 金币: 12914.1
- 红花: 64
- 帖子: 2238
- 在线: 287.3小时
- 虫号: 696514
- 注册: 2009-02-05
- 专业: 计算机软件

4楼2011-06-07 21:43:57










回复此楼