Aufruf von nicht-statischen member-Funktion ohne ein Objekt-argument

Kann jemand erklären, diese Fehler alle warum bekomme ich es? Ich glaube, ich habe alle arithmetischen unten in meiner eigenen Klasse.

Dieses Programm speichert und manipuliert Fraktionen, auch während des Tests zu überladen.

Vielen Dank im Voraus.

Ich versuche, dies zu testen, in der Fahrer mit der Leistung so aussieht.

f1 = 3/6, f2 = 4/5 
f1 + f2 = 39/30 = 13/10 = 1.3 
f1 - f2 = -9/30 = -3/10 = -0.3 
f1 * f2 = 12/30 = 2/5 = 0.4 
f1 / f2 = 15/24 = 5/8 = 0.625 
Enter a fraction [numerator denominator]: 2 5 
You entered 2/5 

Meine Fraction.cpp Klasse

#include "Fraction.h"

#include <iostream>

using namespace std;

Fraction::Fraction(const int numerator, const int denominator) {  }

int Fraction::getNumerator() const {
    return numerator;
}

int Fraction::getDenominator() const {
    return denominator;
}

int Fraction::gcd() const {
    int n = numerator;
    int d = denominator;
    int temp;

    while (d!=0) {
        temp = n % d;
        n = d;
        d = temp;
    }

    return n;

}

void Fraction::setNumerator(const int numerator) {
    this->numerator = numerator;
}

void Fraction::setDenominator(const int denominator) {
    this->denominator = denominator;
}

string Fraction::toString() const {
    return "";
}

double Fraction::returnDecimal() const {
    double a = (double) getNumerator();
    double b = (double) getDenominator();

    return (a / b);
}

void Fraction::reduce()  {

    int a = gcd();
    int b = numerator / a;
    int c = denominator / a;

    setNumerator(b);
    setDenominator(c);

}

Fraction Fraction::operator +(const Fraction& f) const {

    Fraction temp;

    int a = getNumerator();
    int b = getDenominator();
    int c = f.getNumerator();
    int d = f.getDenominator();

    int tempOne = b;
    int tempTwo = d;

    a = a * tempTwo;
    b = b * tempTwo;

    c = c * tempOne;
    d = d * tempOne;

    temp.setNumerator(a+c);
    temp.setDenominator(d);

    return temp;

}

Fraction Fraction::operator -(const Fraction& f) const {

    Fraction temp;

    int a = getNumerator();
    int b = getDenominator();
    int c = f.getNumerator();
    int d = f.getDenominator();

    int tempOne = b;
    int tempTwo = d;

    a = a * tempTwo;
    b = b * tempTwo;

    c = c * tempOne;
    d = d * tempOne;

    temp.setNumerator(a-c);
    temp.setDenominator(d);

    return temp;

}

Fraction Fraction::operator *(const Fraction& f) const {

    Fraction temp;

    temp.setNumerator(getNumerator() * f.getNumerator());
    temp.setDenominator(getDenominator() * f.getDenominator());

    return temp;

}

Fraction Fraction::operator /(const Fraction& f) const {

    Fraction temp;

    temp.setNumerator(getNumerator() * f.getDenominator());
    temp.setDenominator(getDenominator() * f.getNumerator());

    return temp;

}

bool Fraction::operator ==(const Fraction& f) const {

    return ( (getNumerator() == f.getNumerator()) && (getDenominator() == f.getDenominator()) );

}

bool Fraction::operator !=(const Fraction& f) const {

    return !( (getNumerator() == f.getNumerator()) && (getDenominator() == f.getDenominator()) );

}

bool Fraction::operator <(const Fraction& f) const {

    double a = getNumerator();
    double b = getDenominator();

    double c = getNumerator();
    double d = getDenominator();

    return ((a/b) < (c/d));

}

bool Fraction::operator <=(const Fraction& f) const {

    double a = getNumerator();
    double b = getDenominator();

    double c = getNumerator();
    double d = getDenominator();

    return ((a/b) <= (c/d));

}

bool Fraction::operator >(const Fraction& f) const {

    double a = getNumerator();
    double b = getDenominator();

    double c = getNumerator();
    double d = getDenominator();

    return ((a/b) > (c/d));

}

bool Fraction::operator >=(const Fraction& f) const {

    double a = getNumerator();
    double b = getDenominator();

    double c = getNumerator();
    double d = getDenominator();

    return ((a/b) >= (c/d));

}

ostream& operator <<(ostream& out, const Fraction& f) {
    out << f.getNumerator() << "/" << f.getDenominator();

    return out;
}

istream& operator >>(istream& in, Fraction& f) {    

    int a;
    int b;

    in >> a >> b;

    f.setNumerator(a);
    f.setDenominator(b);

    return in;

}

Meine main-Klasse.

#include <iostream>
#include "Fraction.h"
#include "Fraction.cpp"
using namespace std;

int main(int argc, const char * argv[])
{

    Fraction::getNumerator() const;
    Fraction::getDenominator() const;
    Fraction::gcd() const;
    Fraction::setNumerator(<#const int numerator#>);
    Fraction::setDenominator(<#const int denominator#>);
    Fraction::toString();
    Fraction::returnDecimal() const;
    Fraction::reduce();

    return 0;
}

Bruchteil.h

#include <iostream>
#include <string>

using namespace std;

class Fraction {

private:

    int numerator;

    int denominator;

    int gcd() const;

public:

    Fraction(const int numerator = 0, const int denominator = 0);

    int getNumerator() const;

    int getDenominator() const;

    void setNumerator(const int numerator);

    void setDenominator(const int denominator);

    string toString() const;

    double returnDecimal() const;

    void reduce();

    bool operator ==(const Fraction& f) const;

    bool operator !=(const Fraction& f) const;

    bool operator <(const Fraction& f) const;

    bool operator <=(const Fraction& f) const;

    bool operator >(const Fraction& f) const;

    bool operator >=(const Fraction& f) const;

    Fraction operator +(const Fraction& f) const;

    Fraction operator -(const Fraction& f) const;

    Fraction operator *(const Fraction& f) const;

    Fraction operator /(const Fraction& f) const;

    friend ostream& operator <<(ostream&, const Fraction&);

    friend istream& operator >>(istream&, Fraction&);

};
Was ist der Zweck des Codes in main()? Können Sie erklären, was Sie versuchen, Ihr Programm zu tun, mit der Fraction Klasse?
Ihre Fraction.cpp - Datei ist nutzlos, ohne die Fraction.h - Datei.
Ich habe einen Bruchteil.h-Datei, ich wollte nur nicht, fügen Sie es auf meine post, hätte nicht gedacht, es war wichtig.
Ich werde meine main-post, was ich versuche zu bekommen, aus diesem Programm.
Wenn jemand Sie fragt, um es zu veröffentlichen, es ist wichtig. Es posten.

InformationsquelleAutor MatthewTingle | 2014-10-03

Schreibe einen Kommentar