2 u011947925 u011947925 于 2014.01.03 15:16 提问

c++重载问题:我在运行后发现重载的后置--操作符没起到应有的作用,求解。

#include
using namespace std;

class complex
{
double real,imag;
public:
complex(double r=0,double i=0)
{
real=r;
imag=i;
}

const complex operator--(int)
{

    complex temp(*this);
    --(*this);
    return temp;
}
const complex operator--()
{

       --real;--imag;
       return *this;
}


void display();

};

void complex::display()
{
if(imag>=0)
{
cout<<"("<<real<<"+"<<imag<<"i)"<<endl;
}
else
cout<<"("<<real<<imag<<"i)"<<endl;
}

int main()
{
complex c1(1,1);
cout<<"c1=";c1.display();

--c1;
cout<<"--c1,c1=";c1.display();
c1--;
cout<<"c1--,c1=";c1.display();

return 0;

}
运行结果:
c1=(1+1i)
--c1,c1=(0+0i)
c1--,c1=(-1-1i)

我预想的结果应该是c1--,c1=(0+0i),不知道错在哪里?求解

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!