c++对象中的易错题集-拷贝构造了多少次

来源:互联网 发布:淘宝对比搞笑图片 编辑:程序博客网 时间:2024/05/08 10:09
#include<iostream>using namespace std;static int i = 0;class Widget{public:Widget(){//cout << i++ << endl;}Widget(Widget &w){(*this) = w;cout << i++ << endl;}};Widget f(Widget u){Widget v(u);Widget w = v;return w;}int main(){Widget x;/*Widget z = f(x);Widget y = f(z);如果这样一共调用了8次构造*/Widget y = f(f(x));//调用了7次构造,应该是第一次的返回值传递//到f的形参列表时的时候就没有在调用拷贝构造,返回时没有在外部生成临时拷贝//直接到了第二次的形参列表中system("pause");}

0 0
原创粉丝点击