2015-05-12 86 views
-2

嘿,你可以请检查我的代码在下面? 这只是一个简单的计算器。 我想问一下这有什么问题。CodeBlocks C++使用类

我得到错误“4号线错误:预期不合格-ID之前‘)’标记

#include<iostream> 
    using namespace std; 

    class Calculator() 
    { 

public: 
    int AdditionFunction(float num1, float num2) 
    { 
     sum = num1 + num2; 
    } 
    int SubtractionFunction(float num1, float num2) 
    { 
     diff = num1 - num2; 
    } 
    int MultiplicationFunction(float num1, float num2) 
    { 
     prod = num1 * num2; 
    } 
    int DivisionFunction(float num1, float num2) 
    { 
     quo = num1/num2; 
    } 
public: 
    return sum; 
    return diff; 
    return prod; 
    return quo; 

private: 
    float sum; 
    float diff; 
    float prod; 
    float quo; 
}; 


int main() 
{ 

    float num1, float num2; 
    int choice; 

    Math MathObj; 

    cout<<"Enter first number: "; 
    cin>>num1; 
    cout<<"Enter second number: "; 
    cin>>num2; 
    cout<<"What operation to be used? "<<endl; 
    cout<<"1.Addition"<<endl; 
    cout<<"2.Subtraction"<<endl; 
    cout<<"3.Multiplication"<<endl; 
    cout<<"4.Division"<<endl; 
    cout<<"Choose from 1-5"<<endl<<"Enter your choice here: "; 
    cin>>choice; 

    if (choice == 1) 
    { 
     MathObj.AdditonFunction(0,0); 
    } 

    same as for Subtraction and so on. Ends with a return 0; 

我写了我这样的代码,因为我看,这是一个良好的编程习惯把你的变量私人而不是公众。我将很高兴知道答案。

+2

我无法想象你在哪里看到类似'public:return sum;'的代码。它看起来像你应该开始[这里](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 – molbdnilo

回答

2

除此之外@TobiMcNamobi提到的语法问题,我会考虑改变你的类像下面

class Calculator 
{ 
public: 
    float AdditionFunction(float num1, float num2) const 
    { 
     return num1 + num2; 
    } 
    float SubtractionFunction(float num1, float num2) const 
    { 
     return num1 - num2; 
    } 
    float MultiplicationFunction(float num1, float num2) const 
    { 
     return num1 * num2; 
    } 
    float DivisionFunction(float num1, float num2) const 
    { 
     return num2 != 0.0f ? num1/num2 : 0.0f; 
    } 
}; 

然后你可以使用它像

#include <iostream> 
int main() 
{ 
    Calculator calc; 
    std::cout << "5.5 + 7.1 is " << calc.AdditionFunction(5.5, 7.1); 
} 

一些评论:

  • 你的函数被声明为返回值,但你永远不会使用return关键字
  • 你的函数声明为返回int,但是你用float到处
  • 你不需要把所有的成员变量,你可以通过参数直接传递值代入函数
  • 功能可或者是staticconst,因为他们既不修改也不依赖于班级的任何状态。
  • 由于没有这些功能依赖于Calculator状态,他们按理说应该只是在一个命名空间,并在第一时间
6

类声明应该是这样的

class MyClassName 
{ 
    // declarations 
}; 

()的CL背后屁股名称是错误的。

1

不是class的一部分,这应该工作:当然还是有几种可能取决于你想要做什么(下一步)。在括号

#include<iostream> 

using namespace std; 

class Calculator{ 
public: 
    double AdditionFunction(float num1, float num2) 
    { 
     return num1 + num2; 
    } 
    double SubtractionFunction(float num1, float num2) 
    { 
     return diff = num1 - num2; 
    } 
    double MultiplicationFunction(float num1, float num2) 
    { 
     return prod = num1 * num2; 
    } 
    double DivisionFunction(float num1, float num2) 
    { 
     return quo = num1/num2; 
    } 
private: 
    double sum; 
    double diff; 
    double prod; 
    double quo; 
}; 


int main() 
{ 
    double num1, num2; 
    int choice; 

    Calculator MathObj; 

    cout << "Enter first number: "; 
    cin >> num1; 
    cout << "Enter second number: "; 
    cin >> num2; 
    cout << "What operation to be used? " << endl; 
    cout << "1.Addition" << endl; 
    cout << "2.Subtraction" << endl; 
    cout << "3.Multiplication"<< endl; 
    cout << "4.Division"<< endl; 
    cout << "Choose from 1-5"<< endl <<"Enter your choice here: "; 
    cin >> choice; 
    cin.ignore(); 
    cin.clear(); 

    if (choice == 1) 
    { 
     cout << MathObj.AdditionFunction(num1, num2) << endl; 
    } 
    return 0; 
} 

关注和返回值(特别是如果你使用int主)。另外MathObj.AdditonFunction(0,0);在第一种情况下总会给你零);