注册 登录
编程论坛 C++教室

简单的C++问题。

似水流年去 发布于 2013-11-04 18:59, 600 次点击
程序代码:
#include<iostream>
using namespace std;
class Complex{
public:
    double real;
    double image;
    Complex();
    Complex(double a,double b){real=a;image=b;}
    //Complex Add(double a,double b);//两复数相加
    Complex Add(Complex c);//两复数相加结果是复数
    /*Complex Sub(double a,double b);//两复数相
    Complex Sub(Complex c);//两复数相减结果是复数
    bool IsEqual(Complex c);//两复数是否相等
    Complex Multiply(Complex c);//两复数相乘
    Complex Power(int n);//当前复数的n次方
    Complex Divide(Complex c);//两复数相除
    double GetModal();//模
    void Zoom(double x);//将复数扩大X倍
*/
    void ShowMe();
};
Complex Complex::Add(Complex c){
    return Complex(real+c.real,image+c.image);
}
/*Complex Complex::Add(double a,double b){
    return Complex(real+a,image+b);
}
*/
void Complex::ShowMe(){
    if(image<0.0)
        cout<<real<<image<<"i"<<endl;
    else
        cout<<real<<"+"<<image<<"i"<<endl;
}
int main()
{
    Complex x(1,2),y(3,4);
    Complex c1;
    c1=x.Add(y);
    c1.ShowMe();
    return 0;
}
不清楚总是在build的时候出现错误。
--------------------Configuration: 1 - Win32 Debug--------------------
Linking...
1.obj : error LNK2001: unresolved external symbol "public: __thiscall Complex::Complex(void)" (??0Complex@@QAE@XZ)
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

1.exe - 1 error(s), 0 warning(s)
该怎么修改呢?
5 回复
#2
blueskiner2013-11-04 20:09
第七行    Complex();   分号改成两个花括号{}
#3
CL04192013-11-05 23:51
是这样的,你在一个类里,弄了好几个对象,但是我想问你一下,你这几行代码是什么意思先:
Complex x(1,2), y(3,4);
    Complex c1;
    c1=x.Add(y);
    c1.ShowMe();
你好好想想,这样写对吗?你看我写的:

只有本站会员才能查看附件,请 登录
#4
sh3166301032013-11-09 20:51
#5
似水流年去2013-11-13 22:55
以下是引用CL0419在2013-11-5 23:51:18的发言:

是这样的,你在一个类里,弄了好几个对象,但是我想问你一下,你这几行代码是什么意思先:
Complex x(1,2), y(3,4);
    Complex c1;
    c1=x.Add(y);
    c1.ShowMe();
你好好想想,这样写对吗?你看我写的:
 
Complex x(1,2), y(3,4); //表示定义的两个复数对象
    Complex c1; //定义一个复数对象用于存放x加y的和的结果
    c1=x.Add(y);
    c1.ShowMe(); //显示打印所得和的结果
#6
似水流年去2013-11-13 23:02
回复 3楼 CL0419
问题是我照2L的修改后没有错啊。
1