Skip to content

Commit 7769247

Browse files
committed
mit Plus und PlusGleich Operator
1 parent a1ea75b commit 7769247

File tree

3 files changed

+43
-7
lines changed

3 files changed

+43
-7
lines changed

FractionDemo/src/CFraction.cpp

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ CFraction::CFraction(int num, int den) {
2727
*mp_numerator = num;
2828
*mp_denumerator = den;
2929

30-
clog << "Num: " << *mp_numerator << ", Den: " << *mp_denumerator << endl;
30+
// clog << "Num: " << *mp_numerator << ", Den: " << *mp_denumerator << endl;
3131
}
3232

3333
CFraction::CFraction(const CFraction &fraction) {
@@ -39,7 +39,7 @@ CFraction::CFraction(const CFraction &fraction) {
3939

4040
*mp_numerator = *fraction.mp_numerator;
4141
*mp_denumerator = *fraction.mp_denumerator;
42-
clog << "Num: " << *mp_numerator << ", Den: " << *mp_denumerator << endl;
42+
// clog << "Num: " << *mp_numerator << ", Den: " << *mp_denumerator << endl;
4343

4444
}
4545

@@ -49,13 +49,33 @@ CFraction& CFraction::operator =(const CFraction& fraction) {
4949

5050
*mp_numerator = *fraction.mp_numerator;
5151
*mp_denumerator = *fraction.mp_denumerator;
52-
clog << "Num: " << *mp_numerator << ", Den: " << *mp_denumerator << endl;
52+
// clog << "Num: " << *mp_numerator << ", Den: " << *mp_denumerator << endl;
5353

5454
return *this;
5555
}
5656

57+
CFraction& CFraction::operator +=(const CFraction& fraction) {
58+
59+
*this->mp_numerator += *fraction.mp_numerator;
60+
*this->mp_denumerator += *fraction.mp_denumerator;
61+
62+
return *this;
63+
}
64+
65+
CFraction CFraction::operator +(const CFraction& fraction) {
66+
67+
int num = *this->mp_numerator + *fraction.mp_numerator;
68+
int den = *this->mp_denumerator + *fraction.mp_denumerator;
69+
70+
return CFraction(num, den);
71+
}
72+
73+
ostream& operator <<(ostream& o, const CFraction& cf) {
74+
return o << "Num: " << *cf.mp_numerator << ", Den: " << *cf.mp_denumerator
75+
<< endl;
76+
}
77+
5778
void CFraction::writeln() {
5879
cout << "Num: " << *mp_numerator << ", Den: " << *mp_denumerator << endl;
5980
}
6081

61-

FractionDemo/src/CFraction.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* Created on: 16.09.2013
55
* Author: Markus
66
*/
7+
#include <iostream>
78

89
#ifndef CFRACTION_H_
910
#define CFRACTION_H_
@@ -13,9 +14,12 @@ class CFraction {
1314
CFraction();
1415
virtual ~CFraction();
1516
CFraction(int num, int den);
16-
CFraction(const CFraction &fraction);
17-
CFraction& operator=(const CFraction &fraction);
17+
CFraction(const CFraction& fraction);
18+
CFraction& operator =(const CFraction& fraction);
19+
CFraction operator +(const CFraction& fraction);
20+
CFraction& operator +=(const CFraction& fraction);
1821

22+
friend std::ostream& operator <<(std::ostream& o, const CFraction& cf);
1923
void writeln();
2024

2125
private:

FractionDemo/src/FractionDemo.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ int main() {
1414
CFraction zahl1(3, 4); // mit Übergabeparametern
1515
CFraction zahl2; // mit Standardwerten initialisieren
1616
CFraction zahl3(zahl1); // als Copy Konstruktor
17-
CFraction zahl4 = zahl2; // mit Zuweisungsoperator
17+
CFraction zahl4 = zahl2; // mit Zuweisungsoperator
1818

1919
zahl1.writeln();
2020
zahl2.writeln();
@@ -24,6 +24,18 @@ int main() {
2424
// Test zu Aufgabe 5
2525
CFraction aFraction;
2626
aFraction = CFraction(13, 42);
27+
aFraction.writeln();
28+
29+
// Aufgabe 7
30+
CFraction a(3, 5), b(7, 9), c;
31+
a.writeln();
32+
b.writeln();
33+
c = a + b;
34+
c.writeln();
35+
c += b;
36+
c.writeln();
37+
38+
cout << "c= " << c;
2739

2840
return 0;
2941
}

0 commit comments

Comments
 (0)