C++ Methode Implementieren
-
Hi,
vielleicht könnt ihr mir helfen.
Verstehe nicht wie man diese Aufgabe lösen soll.
------------------------------------------------
Aufgabe:Impletieren Sie alle weiteren Methoden der Klasse. Beachten Sie dabei folgende Hinweise:
isInteger:Methode prüft, ob der Bruch ganzzahlig ist (Rückgabe true) oder nicht (Rückgabe false). Man kann diese Methode mit Hilfe Operators % (Modulo) implementieren.
----------------------------------------------Habe gedacht das man in Zeile 70 niemals den Attributwert anstelle des Parameterwertes überprüfen darf.
Aber anders bekomme ich eine Fehlermeldung//CFraction.h #ifndef CFraction_H #define CFraction_H class CFraction { public: CFraction(); void setNumerator(int nN); bool setDenominator(int nD); bool isInteger(); bool isProper(); void addInteger(int nValue); float transform2float(); void print(); private: int m_nN; int m_nD; }; #endif --------------------------------------------------------------------------- //CFraction.cpp #include <iostream> #include <iomanip> using namespace std; #include"CFraction.h" //Implementierung von CFraktion void CFraction::setNumerator(int nN) { m_nN=nN; } bool CFraction::setDenominator(int nD ) { if(nD > 0. && nD <0.) { m_nD=nD; return true; } else return false; } bool CFraction::isInteger() { if((m_nN%m_nD)!=0) //Niemals den Attributwert anstelle des Parameterwertes überprüfen { return false; } else return true; } // Implementierung des Konstruktors im cpp-File CFraction::CFraction() { m_nN=0.; m_nD=1.; } void CFraction::print() { cout <<"Zaehler:"<< m_nN<<endl; cout<<"Nenner:"<<m_nD<<endl; } ------------------------------------------------------------------- //main.cpp #include"CFraction.h" #include <iostream> #include <iomanip> using namespace std; int main () { int nValue=-1; // Deklaration von Objekten der Klasse CFraction CFraction f; f.print(); f.setNumerator(2); f.print(); f.setNumerator(nValue); f.print(); system ("PAUSE");}
-
ist es gewollt dass du in der main keinen Nenner festlegst?
Und welche Fehlermeldung kriegst du?
-
...
-
Swordfish: Wieso kein
const-qualifier beiis_integer? Wieso keine Getter? Wieso kein zweiter Konstruktor?
P.S.: Außerdem ist das Design komisch. Wieso beim Setter eine Überprüfung? Der Programmierer wird, wenn er einen so grundlegenden Typen verwendet, schon schlau genug sein, keine 0 als Nenner zu setzen.
Edit^x: Ach. War nur eine Korrektur. Dann geht das an den ... TE.
-
...