大家看一下错误何在
class complex
{
double realPart;
double imagePart;
char *mName;
static int mNo;
public:
complex();
~complex();
void print();
void setvalues(double zr,double zi);
void setRealPart(double zr);
void setImagePart(double zi);
complex Add(complex zc1,complex zc2);
complex Substract(complex zc1,complex zc2);
};
下面是complex.cpp文件
#include<iostream.h>
#include<string.h>
#include"complex.h"
int complex::mNo=0;
void complex::setvalues(double zr,double zi)
{
realPart=zr;
imagePart=zi;
}
void complex::setRealPart(double zr)
{
realPart=zr;
}
void complex::setImagePart(double zi)
{
imagePart=zi;
}
complex complex::Add(complex zc1,complex zc2)
{
complex ztemp;
ztemp.setvalues(zc1.realPart+zc2.realPart,zc1.imagePart+zc2.imagePart);
return ztemp;
}
complex complex::Substract(complex zc1,complex zc2)
{
complex ztemp;
ztemp.setvalues(zc1.realPart-zc2.realPart,zc1.imagePart-zc2.imagePart);
return ztemp;
}
void complex::print()
{
if ((realPart>0)&&(imagePart>0))
{
cout<<realPart<<'+'<<imagePart<<'i'<<endl;
}
if ((realPart>0)&&(imagePart<0))
{
cout<<realPart<<imagePart<<'i'<<endl;
}
if ((realPart>0)&&(imagePart==0))
{
cout<<realPart<<endl;
}
if ((realPart<0)&&(imagePart>0))
{
cout<<realPart<<'+'<<imagePart<<'i'<<endl;
}
if ((realPart<0)&&(imagePart<0))
{
cout<<realPart<<imagePart<<'i'<<endl;
}
if ((realPart<0)&&(imagePart==0))
{
cout<<realPart<<endl;
}
if ((realPart==0)&&(imagePart>0))
{
cout<<imagePart<<'i'<<endl;
}
if ((realPart==0)&&(imagePart<0))
{
cout
<<imagePart<<'i'<<endl;
}
if ((realPart==0)&&(imagePart==0))
{
cout<<'0'<<endl;
}
}
complex::complex()
{
realPart=0;
imagePart=0;
mNo++;
mName=new char[8];
strcpy(mName,"complex");
cout<<mName<<mNo<<endl;
}
complex::~complex()
{
delete mName;
}
下面是main_complex.cpp文件
#include<iostream.h>
#include"complex.h"
void main()
{
double zr,zi;
char ch='y',add_or_sub; //判断程序是否结束
complex zc1,zc2,zc3;
while (ch=='y')
{
cout<<"请输入第一个复数的实部:"<<endl;
cin>>zr;
cout<<"请输入第一个复数的虚部:"<<endl;
cin>>zi;
zc1.setvalues(zr,zi);
cout<<"请输入第二个复数的实部:"<<endl;
cin>>zr;
cout<<"请输入第二个复数的虚部:"<<endl;
cin>>zi;
zc2.setvalues(zr,zi);
cout<<"两数相加请输入a,两数相减请输入s:"<<endl;
cin>>add_or_sub;
if (add_or_sub=='a')
{
zc3=zc3.Add(zc1,zc2);
}
if (add_or_sub=='s')
{
zc3=zc3.Substract(zc1,zc2);
}
zc3.print();
cout<<"要继续计算吗?请输入[Y] or [N]"<<endl;
cin>>ch;
}
}
为什么会出错呢?