编译获取错误时错误 - 复数:: sum的多重声明。
#include<iostream.h>
#include<conio.h>
#include<string.h>
class complex
{
float a,b;
public:
complex (float m,float n)
{
a=m;
b=n;
}
complex sum (complex complex);
void show (complex);
};
complex complex::sum (complex c1 complex c2)
{
complex c3;
c3.a=(c1.a)+(c2.a);
c3.b=(c1.b)+(c2.b);
return c3;
}
void complex::show (complex c3)
{
cout<<c.a<<"+"<<c.b<<"i";
}
int main()
{
clrscr();
complex c1,c2,c3 ;
c1=complex(4.2,9.3);
c2=complex(12.5,6.5);
c3=sum(c1,c2);
cout<<"c1="<<c1.show;
cout<<"c2="<<c2.show;
cout<<"c3="<<c3.show;
getch();
return 0;
}
我该怎么做才能删除complex::sum
错误的多个声明。我使用的是turbo c ++ 4.0版本。
答案 0 :(得分:0)
您需要在此声明中使用逗号
complex sum (complex, complex);
^^
因为该函数使用两个参数。
此外,必须正确定义该功能
complex complex::sum (complex c1, complex c2)
^^^
{
complex c3( c1.a + c2.a, c1.b + c2.b );
return c3;
}
写
会更正确/* const */ complex complex::sum ( const complex &c1, const complex &c2 ) const
{
complex c3( c1.a + c2.a, c1.b + c2.b );
return c3;
}
考虑到该类没有默认构造函数。
函数show应声明为静态或无参数,例如
void show() /*const*/;
该函数应该像
一样调用cout<<"c1="<<c1.show();
^^^
cout<<"c2="<<c2.show();
^^^
答案 1 :(得分:0)
终于得到了输出。这是工作代码
#include<iostream.h>
#include<conio.h>
#include<string.h>
class complex
{
float a,b;
public:
complex (float m,float n)
{
a=m;
b=n;
}
complex sum (complex, complex);
void show (complex);
};
complex complex::sum ( complex c1,complex c2)
{
complex c3(c1.a+c2.a, c1.b+c2.b);
return c3;
}
void complex::show (complex c3)
{
cout<<c3.a<<"+"<<c3.b<<"i";
}
int main()
{ clrscr();
float p,q,r,s;
cin>>p>>q>>r>>s;
complex c3(c3.sum(complex(p,q),complex(r,s)));
cout<<"c3=";
c3.show(c3);
getch();
return 0;
}