大家看一下错误何在

jwb0000 2003-10-19 08:02:26
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;
}
}


为什么会出错呢?
...全文
33 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy84920 2003-10-19
  • 打赏
  • 举报
回复
太长了,没有编译器!
ttlb 2003-10-19
  • 打赏
  • 举报
回复
char *str = "complex";
complex::complex()
{
realPart=0;
imagePart=0;
mNo++;
mName=new char[8];
strcpy(mName,str);

cout<<mName<<mNo<<endl;
}
ttlb 2003-10-19
  • 打赏
  • 举报
回复
void Add(complex zc1,complex zc2);
void Substract(complex zc1,complex zc2);

void complex::Add(complex zc1,complex zc2)
{
setvalues(zc1.realPart+zc2.realPart,zc1.imagePart+zc2.imagePart);
}
void complex::Substract(complex zc1,complex zc2)
{
setvalues(zc1.realPart-zc2.realPart,zc1.imagePart-zc2.imagePart);
}


if (add_or_sub=='a')
{
zc3.Add(zc1,zc2);
}
if (add_or_sub=='s')
{
zc3.Substract(zc1,zc2);
}

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧