Forum: PC-Programmierung wie kann ich Arrays übertragen


von Franz (Gast)


Lesenswert?

#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

von Karl H. (kbuchegg)


Lesenswert?

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
}

von Franz (Gast)


Lesenswert?

schon klarr aber der Combiler übersetzt das nicht

auf meinen PC ist es eingerückt

von Karl H. (kbuchegg)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Franz (Gast)


Lesenswert?

ist ne alte Prüfung und da war es genauso falsch

von Karl H. (kbuchegg)


Lesenswert?

Franz schrieb:
> ist ne alte Prüfung und da war es genauso falsch

Da war was genauso falsch?

von Franz (Gast)


Lesenswert?

da war dieses a[i] innengestanden

von Karl H. (kbuchegg)


Lesenswert?

OK.

Und wird das korrigiert, dann compiliert alles wunderbar.
Ist dein Problem damit gelöst?

von Franz (Gast)


Lesenswert?

in der Prüfung hätte ich es vor aufregung eh nicht gemerkt lol
ich mach jetzt erstmal ne Tamplate klasse draus lol

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> 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
Noch kein Account? Hier anmelden.