读书人

c++已知异常拜求解决!多谢!

发布时间: 2012-11-07 09:56:10 作者: rapoo

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();
}



谢谢!!!

[解决办法]

C/C++ code
#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;}
[解决办法]
C/C++ code
#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();
}

读书人网 >C++

热点推荐