2015-05-12 82 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);在第一種情況下總會給你零);