簡體   English   中英

需要構造函數/析構函數/類型轉換錯誤

[英]Needs constructor/destructor/type conversion error

我得到的錯誤是在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::fracDiv(fraction b){
// ^^^^                    ^^^^^
}

只有構造函數和析構函數實現可以省略返回類型。

// OK
fraction::fraction(){ ... }

// OK
fraction::~fraction(){ ... }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM