Programmieren 1 - Strukturen - Klassen - Objekte
Programmieren 1 - Strukturen - Klassen - Objekte
Programmieren 1 - Strukturen - Klassen - Objekte
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Funktionsorientiert versus Objektorientiert<br />
FB Informatik<br />
Prof. Dr. R.Nitsch<br />
// Fraction.cpp<br />
#include "Fraction.h"<br />
Fraction add(Fraction op1, Fraction op2) {<br />
if(op1.n==0||op2.n==0) // PRE<br />
exit(1); // aborts program<br />
Fraction result;<br />
result.z = op1.z*op2.n+op1.n*op2.z;<br />
result.n = op1.n*op2.n;<br />
return result;<br />
}<br />
Fraction subtract(Fraction op1, Fraction op2)<br />
{ /* … */ }<br />
// …<br />
// Fraction.cpp<br />
#include "Fraction.h"<br />
Fraction Fraction::add(Fraction op2) {<br />
if(n==0||op2.n==0) // PRE<br />
exit(1); // aborts program<br />
Fraction result;<br />
result.z = z*op2.n+n*op2.z;<br />
}<br />
result.n = n*op2.n;<br />
return result;<br />
Fraction Fraction::subtract(Fraction op2)<br />
{ /* … */ }<br />
// …<br />
Deklariert Zugehörigkeit zum<br />
Namensbereich "Fraction"<br />
Membervariable des<br />
aufrufenden Objekts<br />
Fraction set(Fraction op,int num, int denom)<br />
if(denom==0) exit(1); // PRE<br />
op.z=num; op.n=denom;<br />
return op;<br />
}<br />
void Fraction::set(int num, int denom)<br />
if(denom==0) exit(1); // PRE<br />
z=num; n=denom;<br />
return;<br />
Hier wird die Membervariable des<br />
}<br />
aufrufenden Objekts und nicht die<br />
einer Kopie desselben verändert.<br />
Rückgabe an Aufrufstelle und dort<br />
Zuweisung an Original sind deshalb<br />
nicht mehr nötig.<br />
22.04.2013 6