[求助]关于拷贝构造函数,急!!
widget t(widget u)
{
widget v(u);
widget w=v;
return w;
}
main ()
{
widget x;
widget y=t(t(x));
}
其中widget是一个类
请问这里一共调用了多少次拷贝构造函数?
[此贴子已经被作者于2007-7-3 23:41:01编辑过]
widget t(widget u)
{
widget v(u);
widget w=v;
return w;
}
main ()
{
widget x;
widget y=t(t(x));
}
其中widget是一个类
请问这里一共调用了多少次拷贝构造函数?
[此贴子已经被作者于2007-7-3 23:41:01编辑过]
[此贴子已经被作者于2007-7-3 23:38:41编辑过]
return前的是多打了
main中第一行只调用构造函数吧
widget w=v; 这个应该是重载的=,如果这个不算一次的话我觉得应该是6次
可是我们老师一定说是7次,下午就要考了,这个是必考的,所以老师不给我们解释
大家看下到底是多少次啊
伙计们,是9次,靠偷懒不行啊!
以下是测试代码
#include <iostream.h>
class widget
{
public:
widget(){}
widget(const widget& cpy)
{
*this=cpy;
cout<<&cpy<<" 调用复制构造函数! 构造"<<this<<endl;
}
};
widget tf(widget _u)
{
widget v(_u);
widget w=v;
return w;
}
int main()
{
widget x;
widget y=tf(tf(x));
return 0;
}
测试结果: