#include <iostream> #include <cassert> using namespace std; class Array { public: int &operator[](unsigned int index) { assert(index < 4); return data[index]; } void print() const { for (int i = 0; i < 4; i++) cout << a[i] << '\t'; cout << endl; } private: int data[4]; }; int main(void) { Array arr; for (int i = 0; i < 4; i++) { arr[i] = 11 * (i + 1); } arr.print(); return 0; wie bekomm ich arr[] an die Funktion print übermittelt
Franz schrieb: > > wie bekomm ich arr[] an die Funktion print übermittelt Deine Frage macht keinen Sinn. print ist eine Memberfunktion von arr. Die rufst du einfach auf. arr.print(); PS: Mach dir selbst das Leben leichter und benutze Einrückungen um deinen Code zu formatieren. So ist er viel leichter zu lesen
1 | #include <iostream> |
2 | #include <cassert> |
3 | |
4 | using namespace std; |
5 | |
6 | class Array |
7 | {
|
8 | public:
|
9 | int &operator[](unsigned int index) |
10 | {
|
11 | assert(index < 4); |
12 | return data[index]; |
13 | }
|
14 | |
15 | void print() const |
16 | {
|
17 | for (int i = 0; i < 4; i++) |
18 | cout << a[i] << '\t'; |
19 | cout << endl; |
20 | }
|
21 | |
22 | private:
|
23 | int data[4]; |
24 | };
|
25 | |
26 | int main(void) |
27 | {
|
28 | Array arr; |
29 | |
30 | for (int i = 0; i < 4; i++) |
31 | {
|
32 | arr[i] = 11 * (i + 1); |
33 | }
|
34 | |
35 | arr.print(); |
36 | return 0; |
37 | }
|
schon klarr aber der Combiler übersetzt das nicht auf meinen PC ist es eingerückt
Und jetzt, nachdem ich das umformtiert habe, sehe ich auch das Problem
1 | void print() const |
2 | {
|
3 | for (int i = 0; i < 4; i++) |
4 | cout << data[i] << '\t'; |
5 | cout << endl; |
6 | }
|
Das Array in deiner Klasse heißt data, nicht a.
Franz schrieb:
> schon klarr aber der Combiler übersetzt das nicht
Ach. Ehrlich?
Was könnte das jetzt wohl für einen Grund haben?
Wird das jetzt ein Ratespiel?
Wer errät, was der Compiler wohl zu diesem Code sagen wird, ehe wir dann
dazu übergehen uns zu überlegen, wie der Code geändert werden sollte.
Franz schrieb:
> ist ne alte Prüfung und da war es genauso falsch
Da war was genauso falsch?
OK. Und wird das korrigiert, dann compiliert alles wunderbar. Ist dein Problem damit gelöst?
in der Prüfung hätte ich es vor aufregung eh nicht gemerkt lol ich mach jetzt erstmal ne Tamplate klasse draus lol
> in der Prüfung hätte ich es vor aufregung eh nicht gemerkt lol > ich mach jetzt erstmal ne Tamplate klasse draus lol Ich würde Dir zu einem anderen Berufsbild raten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.