vandread
Lt. Commander
- Registriert
- Nov. 2004
- Beiträge
- 1.380
Hallo Leute,
ich versuch gerade folgende Aufgabe zu lösen:
Entwickeln Sie die Klasse Arr, die ein Feld mit zwei int-Werten enthält. Überladen Sie den +Operator so, dass die Addition zweier Arr-Objekte, die Addition eines Arr-Objekts mit einer Konstanten und die Addition einer Konstanten mit einem Arr-Objekt möglich wird. Verwenden Sie für die Überladung ausschließlich friend-Funktionen und keine Methoden der Klasse Arr. Weitere Methoden der Klasse Arr sind im Teil a) nicht verlangt.
(Bei einer Addition zweier Objekte sollen die jeweiligen Feldelemente addiert werden. Ist eine Konstante beteiligt, wird diese Konstante zu jedem der beiden Feldelemente addiert.)
Also soweit kein Problem...
So sieht meine momentane Lösung aus:
Das funktioniert auch wunderbar...
Das einzige was ich jetzt nicht verstehe ist...
Wie soll ich bitte eine Konstande mit einem Arr-Objekt addieren?
Das müsste ja in etwa so ausschauen:
Damit das geht müsste ich doch den +Operator von int oder so überladen oder gibt es da eine andere Möglichkeit?
Was ich auch nicht verstehe ist, wieso ich "ausschließlich" friend-Funktionen nutzen soll,
das ist doch in diesem Fall total überflüssig da ich ja in ein und der selben Instanz bin...
ich versuch gerade folgende Aufgabe zu lösen:
Entwickeln Sie die Klasse Arr, die ein Feld mit zwei int-Werten enthält. Überladen Sie den +Operator so, dass die Addition zweier Arr-Objekte, die Addition eines Arr-Objekts mit einer Konstanten und die Addition einer Konstanten mit einem Arr-Objekt möglich wird. Verwenden Sie für die Überladung ausschließlich friend-Funktionen und keine Methoden der Klasse Arr. Weitere Methoden der Klasse Arr sind im Teil a) nicht verlangt.
(Bei einer Addition zweier Objekte sollen die jeweiligen Feldelemente addiert werden. Ist eine Konstante beteiligt, wird diese Konstante zu jedem der beiden Feldelemente addiert.)
Also soweit kein Problem...
So sieht meine momentane Lösung aus:
Code:
#ifndef Uebungsblock_3_Aufgabe_2_Arr_h
#define Uebungsblock_3_Aufgabe_2_Arr_h
class Arr {
int number[2];
public:
Arr(int x, int y);
void print();
void operator+(const Arr& a);
void operator+(int i);
};
#endif
Code:
#include <iostream>
#include "Arr.h"
Arr::Arr(int x, int y){
number[0] = x;
number[1] = y;
}
void Arr::print() {
std::cout << "number[0] = " << number[0] << std::endl;
std::cout << "number[1] = " << number[1] << std::endl;
}
void Arr::operator+(const Arr& a) {
number[0] += a.number[0];
number[1] += a.number[1];
}
void Arr::operator+(int i) {
number[0] += i;
number[1] += i;
}
Das funktioniert auch wunderbar...
Das einzige was ich jetzt nicht verstehe ist...
Wie soll ich bitte eine Konstande mit einem Arr-Objekt addieren?
Das müsste ja in etwa so ausschauen:
Code:
Arr a(1,2);
int sol = 5 + a;
Damit das geht müsste ich doch den +Operator von int oder so überladen oder gibt es da eine andere Möglichkeit?
Was ich auch nicht verstehe ist, wieso ich "ausschließlich" friend-Funktionen nutzen soll,
das ist doch in diesem Fall total überflüssig da ich ja in ein und der selben Instanz bin...