请求帮助

sweetna 2008-03-23 08:51:56
以下源代码总是出现如下编译错误,C:\Program Files\Microsoft Visual Studio\MyProjects\chong\s.cpp(12) : error C2143: syntax error : missing ';' before '+'
C:\Program Files\Microsoft Visual Studio\MyProjects\chong\s.cpp(12) : error C2350: 'complex::complex::complex' is not a static member
C:\Program Files\Microsoft Visual Studio\MyProjects\chong\s.cpp(12) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

chong.exe - 3 error(s), 0 warning(s)
请问是什么原因?谢谢!
#include<iostream.h>
class complex
{
private:
double rem,im;
public:
complex(double i=0.0,double j=0.0):rem(i),im(j){}
complex operator+(complex c1);
~complex();
void dispay();
};
complex::complex operator + (complex c1)
{
complex c;
c.rem=c1.rem+rem;
c.im =c1.im+im;
return complex(c.rem,c.im);
}
~complex::complex()
{
cout<<"destructor called!"<<endl;
}
void complex:: display()
{
cout<<rem<<"+"<<im<<"i"<<endl;
}
void main()
{
complex c1(7,5),c2(1,20),c3;
cout<<"c1="<<c1.dispay ()<<endl
<<"c1="<<c1.dispay ()<<endl;
c3=c1+c2;
cout<<"c3=c1+c2="<<c3.dispay <<endl;
}
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
野男孩 2008-03-23
  • 打赏
  • 举报
回复

#include <iostream.h>
class complex
{
private:
double rem,im;
public:
complex(double i=0.0,double j=0.0):rem(i),im(j){}
complex operator+(complex c1);
~complex();
void dispay();
};
complex complex::operator + (complex c1) //自己看吧
{
complex c;
c.rem=c1.rem+rem;
c.im =c1.im+im;
return complex(c.rem,c.im);
}
~complex::complex() //~放在函数名前面,不是类型名前面:complex::~complex()
{
cout <<"destructor called!" <<endl;
}
void complex::dispay() //-----------拼写错误
{
cout <<rem <<"+" <<im <<"i" <<endl;
}
void main()
{
complex c1(7,5),c2(1,20),c3;
cout <<"c1=" <<c1.dispay () <<endl //dispay返回的是void,直接调用c1.dispay就行了
<<"c1=" <<c1.dispay () <<endl;
c1.dispay();
c3=c1+c2;
cout <<"c3=c1+c2=" <<c3.dispay <<endl; //一样的
c3.dispay();
}
sweetna 2008-03-23
  • 打赏
  • 举报
回复
错误确实不少,谢谢了,可是编译还上述三处错误
ttkk_2007 2008-03-23
  • 打赏
  • 举报
回复

#include <iostream.h>
class complex
{
private:
double rem,im;
public:
complex(double i=0.0,double j=0.0):rem(i),im(j){}
complex operator+(complex c1);
~complex();
void dispay(); //貌似应该是display
};
complex::complex operator + (complex c1) //写错了complex complex::operator + (complex &c1)最好是引用
{
complex c;
c.rem=c1.rem+rem;
c.im =c1.im+im;
return complex(c.rem,c.im);
}
~complex::complex() //错了,complex::~complex()
{
cout < <"destructor called!" < <endl;
}
void complex:: display()
{
cout < <rem < <"+" < <im < <"i" < <endl;
}
void main()
{
complex c1(7,5),c2(1,20),c3;
cout < <"c1=" < <c1.dispay () < <endl //全都改为c1.display()
< <"c1=" < <c1.dispay () < <endl;
c3=c1+c2;
cout < <"c3=c1+c2=" < <c3.dispay < <endl;
}
ttkk_2007 2008-03-23
  • 打赏
  • 举报
回复

class complex
{
private:
double rem,im;
public:
complex(double i=0.0,double j=0.0):rem(i),im(j){}
complex operator+(complex c1);
~complex();
void display();
};
complex complex::operator + (complex c1)
{
complex c;
c.rem=c1.rem+rem;
c.im =c1.im+im;
return complex(c.rem,c.im);
}
complex::~complex()
{
cout <<"destructor called!" <<endl;
}
void complex::display()
{
cout <<rem <<"+" <<im <<"i" <<endl;
}
void main()
{
complex c1(7,5),c2(1,20),c3;
cout <<"c1=" <<c1.display () <<endl
<<"c1=" <<c1.display () <<endl;
c3=c1+c2;
cout <<"c3=c1+c2=" <<c3.display <<endl;
}

64,691

社区成员

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

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