2013-03-28 25 views
0

嘿家伙我是新来的C++和每次我编译我的代码,它一直说我有一个错误c2413很多行,但我显然有一个分号。这通常发生在我输入诸如ex之类的东西时。 Complex.real。我想知道你能帮助我吗?复杂的数字简单的错误

using namespace std; 
#include <iostream> 

class Complex 
{ 
private: 
     double real; 
     double imaginary; 
public: 
Complex() 
{ 
    real = 0.0; 
    imaginary = 0.0; 
} 
Complex(double r, double i) 
{ 
    real = r; 
    imaginary= i; 
} 

//Setters 
void setReal(double r) 
{ 
    real = r; 
} 
void setImaginary(double i) 
{ 
    imaginary = i; 
} 

//Getters 
double getReal() 
{ 
    return real; 
}// end getReal 
double getImaginary() 
{ 
    return imaginary; 
}//end of getImaginary() 

void output() 
{ 
    cout<< real <<" + i"<< imaginary; 
} 

Complex add(Complex a) 
{ 
    Complex result; 
    result.real= a.real + real; 
    result.imaginary = a.imaginary+imaginary; 
    return result; 

} 
Complex subtract(Complex a) 
{ 
    Complex result; 
    Complex.real = (real - a.real); 
    Complex.imaginary = (imaginary - a.imaginary); 
    return result; 
} 
Complex mul(Complex a) 
{ 
    Complex result; 
    Complex.real = (real*a.real)-(imaginary*a.imaginary); 
    Complex.imaginary = (real*a.imaginary)+(imaginary*a.real); 
    return result; 
} 
Complex div(Complex a) 
{ 
    Complex result; 
    result.real = 
    ((real*a.real)+(imaginary*a.imaginary))/((a.real*a.real)+(a.imaginary+a.imaginary)); 
    result.imaginary = 
     ((imaginary*a.real)-(real*a.imaginary))/((a.real*a.real)+(a.imaginary+a.imaginary)); 
    return result; 
} 
}//end complex class 

1> ------构建开始:项目:复数计算器,配置:调试的Win32 ------ 1> Calculator.cpp 1> C:\用户\ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ calculator.cpp(3):错误C2143:语法错误:缺少';'使用' 1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(57):错误C2143:语法错误:缺少';'之前'。' 1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(57):错误C2143:语法错误:缺少';'之前'。' 1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(58):错误C2143:语法错误:缺少';'之前'。' 1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(58):错误C2143:语法错误:缺少';'之前'。'1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(64):错误C2143:语法错误:缺少';'之前'。'1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(64):错误C2143:语法错误:缺少';'之前'。' 1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(65):错误C2143:语法错误:缺少';'之前'。' 1> c:\ users \ victor \ documents \ visual studio 2010 \ projects \复杂数字计算器\复数计算器\ complex.h(65):错误C2143:语法错误:缺少';'之前'。' ==========生成:0成功,1失败,0上最新,0已跳过==========

+2

心中实际发布的错误,而不是一个很有意义的数字? – chris 2013-03-28 01:31:17

+0

尝试把;在评论//结束复杂类之前.. – FailedDev 2013-03-28 01:33:34

+0

建议:使用''const''为你的getters。 – gongzhitaao 2013-03-28 01:36:59

回答

6

因此,有一对夫妇错误,类定义的结尾需要一个;。它也像你代替result在几个地方有Complex,例如:

Complex mul(Complex a) 
{ 
    Complex result; 
    Complex.real = (real*a.real)-(imaginary*a.imaginary); 
    Complex.imaginary = (real*a.imaginary)+(imaginary*a.real); 
    return result; 
} 

看起来应该是:

Complex mul(Complex a) 
{ 
    Complex result; 
    result.real = (real*a.real)-(imaginary*a.imaginary); 
    result.imaginary = (real*a.imaginary)+(imaginary*a.real); 
    return result; 
} 

一旦我解决它看起来上述问题,如它编译只是精细。功能subtract也有与mul相同的问题。也有人建议在您的getter使用const,例如:

double getReal() const 
{    ^^^^^ 
    return real; 
} 

这是很好的做法对方法,你知道不应该改变任何对象变量。

+0

是的,我只是改变了你的建议和编译,谢谢! – 2013-03-28 01:39:57