www.mikrocontroller.net

Forum: PC-Programmierung wie kann ich Arrays übertragen


Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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
#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;
}

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schon klarr aber der Combiler übersetzt das nicht

auf meinen PC ist es eingerückt

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und jetzt, nachdem ich das umformtiert habe, sehe ich auch das Problem
    void print() const
    {
      for (int i = 0; i < 4; i++)
        cout << data[i] << '\t';
      cout << endl;
    }

Das Array in deiner Klasse heißt data, nicht a.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist ne alte Prüfung und da war es genauso falsch

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Da war was genauso falsch?

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da war dieses a[i] innengestanden

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK.

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

Autor: Franz (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.