读书人

那位大神帮小弟我看看这个程序运行过程

发布时间: 2012-09-29 10:30:01 作者: rapoo

那位大神帮我看看这个程序运行过程中总共产生了几个对象
[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对其初始化的的一个临时对象。如果有四个为输出到屏幕的只显示了三个。求解惑啊!


[解决办法]
有一个名词叫“优化”
别死折腾这个问题。
构造函数和析构函数的数量是一样的就可以了

读书人网 >C++

热点推荐