题目--拷贝构造的次数
Posted 4nc414g0n
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题目--拷贝构造的次数相关的知识,希望对你有一定的参考价值。
题目
问
:
以下代码共调用多少次拷贝构造函数?Widget f(Widget u) { Widget v(u); Widget w=v; return w; } main(){ Widget x; Widget y=f(f(x)); }
知识点
:
- 传值传参和传值返回都会生成一个拷贝对象
- 中间对象·临时对象,在一般情况下,一个对象拷贝构造出一个临时对象,一个临时对象再去拷贝构造另一个对象,一般编译器会进行优化,中间对象优化掉,直接第一个拷贝第三个
(要求
:在一个表达式执行的连续步骤中)
例如
:f1(Widget());//优化(里面是一个匿名对象) ------------------- Wideget w;//不优化 f1(w);
分析
:
- 我们知道传值返回的时候会产生临时变量
看图
一共7次
以上是关于题目--拷贝构造的次数的主要内容,如果未能解决你的问题,请参考以下文章
编程题编写String类的构造函数拷贝构造函数析构函数和赋值函数