1
我得到fracMult
之後和(
I'm missing a constructor, destructor, or type conversion
之前的錯誤。我不知道這是什麼意思。需要構造函數/析構函數/類型轉換錯誤
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
class fraction
{
private:
int numerator;
int denom;
bool positive;
public:
fraction();
fraction(int numerator, int denom, bool positive);
void inputFrac();
void printFrac();
fraction fracMult(fraction b);
fraction fracDiv(fraction b);
fraction fracAdd(fraction b);
fraction fracSub(fraction b);
};
fraction f1, f2, fresult;
int main(int argc, char** argv) {
f1.inputFrac();
f2.inputFrac();
cout << "The result of a * b is: ";
fresult = f1.fracMult(f2);
fresult.printFrac();
return 0;
}
void fraction::printFrac()
{
if(!positive){
cout << "-";
}
cout << numerator << "/" << denom << endl;
}
void fraction::inputFrac()
{
string tempchar;
cout << "What is the numerator? ";
cin >> numerator;
cout << "What is the denominator? ";
cin >> denom;
cout << "Is the fraction positive? (Y or N): ";
cin >> tempchar;
while(tempchar != "Y" && tempchar != "N"){
cout << "Please enter Y or N: ";
cin >> tempchar;
}
if(tempchar == "Y"){
positive = true;
}
else{
positive = false;
}
}
fraction::fracMult(f2){
fresult.numerator = f1.numerator * f2.numerator;
fresult.denom = f1.denom * f2.denom;
if(f1.positive != f2.positive){
fresult.positive = false;
}
return fresult;
}
fraction::fracDiv(){
}
fraction::fracAdd(){
}
fraction::fracSub(){
}
我知道fracDiv,fracAdd和fracSub都是空的,我只是努力使fracMult工作的首位。
我對C++很陌生,所以有時候很小很明顯的錯誤仍然會讓我無法迴避。
當我在行首添加'fraction'時,它會告訴我'fraction fraction :: fracMult()'的main.cpp:81:10:error:原型不匹配對於4個單獨的Add,Sub,Div和Mult中的每一個,任何在class'fraction''和main.cpp:26:14:error:candidate中都是:fraction fraction :: fracMult(fraction)' –
@EricBraunreiter,論據也必須加上。更新了我的答案。 –
好的,解決了這個問題,但現在好像它不讓我初始化f1,f2和fresult分數。是否有某種方法需要初始化它們,因爲「分數」是一個類,而不是「分數f1,f2,fresult;」就像我在分數是結構時所做的那樣? (對不起,如果這些是愚蠢的問題 - 就像我說的,我仍然很新。) –