c++已知错误,拜求解决!!谢谢!!!
复数加减
代码如下:
#include<iostream>
using namespace std;
class Complex
{
public:
Complex( double c2);
void add(Complex &c);
Complex(Complex &c);
void show();
private:
double real;
double image;
}
Complex::Complex( double c2){
real=c2;
image=0;
cout<<"构造函数被调用"<<endl;
}
void Complex:: add(Complex &c)
{
real=real+c.real;
image=image+c.image;
}
Complex::Complex(Complex &c)
{
real=c.real;
image=c.image;
cout<<"复制构造函数被调用"<<endl;
}
void Complex::show()
{
cout<<real<<"+"<<image<<"i"<<endl;
}
void main()
{
Complex c1(3,5);
Complex c2=4.5;
c1.add(c2);
c1.show();
}
谢谢!!!
[解决办法]
#include<iostream>using namespace std;class Complex{ public:Complex(double c1,double c2);Complex(double c2);void add(Complex &c);Complex(Complex &c);void show();private: double real; double image; };Complex::Complex(double c1,double c2){ real=c1; image=c2; cout<<"构造函数被调用"<<endl; } Complex::Complex( double c2){ real=c2; image=0; cout<<"构造函数被调用"<<endl; }void Complex:: add(Complex &c){real=real+c.real;image=image+c.image;} Complex::Complex(Complex &c){real=c.real;image=c.image;cout<<"复制构造函数被调用"<<endl;} void Complex::show() {cout<<real<<"+"<<image<<"i"<<endl;}int main(int argc, char* argv[]) {Complex c1(3,5);Complex c2(4.5);c1.add(c2);c1.show();return 0;}
[解决办法]
#include<iostream>using namespace std;class Complex{ public: Complex(double c1, double c2); void add(Complex &c); Complex(Complex &c); void show();private: double real; double image; };Complex::Complex( double c1, double c2){ real=c2; image=c1; cout<<"构造函数被调用"<<endl;}void Complex:: add(Complex &c){ real=real+c.real; image=image+c.image;}Complex::Complex(Complex &c){ real=c.real; image=c.image; cout<<"复制构造函数被调用"<<endl;}void Complex::show(){ cout<<real<<"+"<<image<<"i"<<endl;}void main(){ Complex c1(3.0,5.0); Complex c2(4.5, 0.0); c1.add(c2); c1.show();}
[解决办法]
#include<iostream>
using namespace std;
class Complex
{
public:
Complex( double c2);
void add(Complex &c);
Complex(Complex &c);
void show();
private:
double real;
double image;
}
Complex::Complex( double c2){
real=c2;
image=0;
cout<<"构造函数被调用"<<endl;
}
void Complex:: add(Complex &c)
{
real=real+c.real;
image=image+c.image;
}
Complex::Complex(Complex &c)
{
real=c.real;
image=c.image;
cout<<"复制构造函数被调用"<<endl;
}
void Complex::show()
{
cout<<real<<"+"<<image<<"i"<<endl;
}
void main()
{
Complex c1(3,5); //这里应该只有一个参数,楼主的意思是不是3.5
Complex c2=4.5; //没有operator=(double)类型的函数
c1.add(c2);
c1.show();
}