奇怪的事,高手看过来!!!
下面这段代码很简单啊但是结果好奇怪,出现四次构造函数却出现五次析构函数!!!
请高手帮忙看看啊!!!!!
#include<iostream.h>
class complex
{
float real;
float image;
public:
complex(float r=0,float i=0)
{real=r;image=i;cout<<"calling constructor..."<<endl;}
~complex()
{cout<<"calling disconstructor..."<<endl;}
void show()
{cout<<"real:"<<real<<" "<<"image:"<<image<<endl;}
complex operator+(complex&c)
{
complex t;
t.real=real+c.real;
t.image=image+c.image;
return t;
}
};
void main()
{
complex c1(1,1);
c1.show();
complex c2;
c2.show();
c2=c1+(complex)3;
c2.show();
}