那位大神帮我看看这个程序运行过程中总共产生了几个对象
[code=C/C++][/code]
class A
{
int i;
public:
A() { i = 0; cout << "构造创建一个对象" << endl;}
A(A &x) { i = x.i; cout << "拷贝构造一个函数" << endl;}
};
A fun(A x)
{
return x;
}
void main()
{
A a;
A a1 = fun(a);
}
总共不是应该有四个么?分别是用默认构造函数初始化的a、拷贝构造函数初始化的a1、调用函数fun时拷贝构造函数初始化的x、fun返回时调用拷贝构造函数用x对其初始化的的一个临时对象。如果有四个为输出到屏幕的只显示了三个。求解惑啊!
[解决办法]
有一个名词叫“优化”
别死折腾这个问题。
构造函数和析构函数的数量是一样的就可以了