INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Referenz eines Arrays in Klasse nutzen
23.02.2015, 01:26 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2015 01:29 von jensel.)
Beitrag #1
Referenz eines Arrays in Klasse nutzen
Hallo Zusammen,

ich bin mal wieder ein wenig mit meinem Arduino am basteln und natürlich direkt auf ein Problem gestoßen, bei dem ich nicht weiter komme. Da ich noch nicht so viel Erfahrung in der Arduino programmierung habe, bin ich noch recht viel am probieren und testen.

Was ich jetzt schon eine Weile versuche ist, eine Referenz auf ein Array an eine Funktion zu übergeben und dann intern mit der Referenz zu arbeiten. Das ganze möchte ich nur einmalig im Setup zuweisen mit einer Function "setActualTime" und dann im Loop nur noch die Werte des Arrays verändern. An anderer Stelle im Loop möchte ich dann über eine andere Funktion "getActualTime" über die interne Referenz auf die Werte des bei "setActualTime" übergebenen Arrays zugreifen.

Die Funktionen der Klasse MenuItem sehen zur Zeit so aus (funktioniert noch nicht so wie ich gerne möchte):

Code:
//Speicher für die aktuelle Zeit (Aufbau: Stunde,Minute,Sekunde)
int ActualTime[3];

//Public
void MenuItem::setActualTime(int _ActualTime[]){
    ActualTime[0]=_ActualTime[0];
    ActualTime[1]=_ActualTime[1];
    ActualTime[2]=_ActualTime[2];
}

//Public
String MenuItem::getActualTime(){
    return getTimeString(ActualTime[0],ActualTime[1],ActualTime[2]);
}

Bei der Übergabe eines Arrays an eine Funktion wird doch immer der Pointer übergeben, diesen müsste ich mir doch speichern können um dann immer auf das übergebene Array zugreifen können?

Kann mir da jemand einen Tip geben?

Gruß
jensel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2015 09:52 von Thorsten Pferdekämper.)
Beitrag #2
RE: Referenz eines Arrays in Klasse nutzen
Hi,
so etwa:
Code:
class MenuItem {
...

private:
   int* myActualTime;

}

//Speicher für die aktuelle Zeit (Aufbau: Stunde,Minute,Sekunde)
int ActualTime[3];


//Public
void MenuItem::setActualTime(int _ActualTime[]){
     myActualTime =_ActualTime;
}

//Public
String MenuItem::getActualTime(){
     return getTimeString(myActualTime[0],myActualTime[1],myActualTime[2]);
}
Ich hab das nicht probiert, aber das würde ich so versuchen.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 10:58
Beitrag #3
RE: Referenz eines Arrays in Klasse nutzen
Hallo Thorsten,

danke für die Antwort, es funktioniert jetzt.

Vielleicht kannst du mir noch kurz erklären warum in dieser Funktion

Code:
String MenuItem::getActualTime(){
    return getTimeString(ActualTime[0],ActualTime[1],ActualTime[2]);
}

nicht über den Sternchen Operator auf das Array zugegriffen wird? Eigentlich möchte ich doch den Inhalt des Pointers auslesen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 11:25
Beitrag #4
RE: Referenz eines Arrays in Klasse nutzen
Hi,
wenn Du das möchtest, dann kannst Du es auch so schreiben:
Code:
return getTimeString(*ActualTime, *(ActualTime + 1), *(ActualTime +2));
Das finde ich aber etwas unübersichtlich.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 11:43
Beitrag #5
RE: Referenz eines Arrays in Klasse nutzen
Hallo,

aha ok, jetzt wird es mir klar Idea
Arrays verhalten sich da ja etwas anders.

Danke für Deine Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2015, 11:46
Beitrag #6
RE: Referenz eines Arrays in Klasse nutzen
Hi,
man könnte auch sagen, dass es Arrays nicht wirklich als eigenständige Datentypen gibt. Der ganze Kram mit [] ist nur eine Kurzschreibweise für Zeiger-Arithmetik.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Brauche Hilfe bei Arrays mega-hz 23 1.236 10.07.2019 15:59
Letzter Beitrag: MartinZ
  Klasse in andere cpp übergeben Phila 9 645 27.04.2019 17:29
Letzter Beitrag: Tommy56
  Meine PushButton-Klasse Gorathan 5 520 26.04.2019 18:50
Letzter Beitrag: Tommy56
  Arbeiten mit Arrays Jan99 23 1.659 08.03.2019 10:10
Letzter Beitrag: MicroBahner
  Programmierung eines MIDI-Controllers Schraubfix 17 1.501 25.02.2019 12:24
Letzter Beitrag: Tommy56
  Programmierung eines Arduino Uno mit Motorshield Lancair4 8 779 24.02.2019 09:49
Letzter Beitrag: Lancair4
  Programmierung eines ToF-Abstandssensors fragesteller1 3 437 01.02.2019 23:21
Letzter Beitrag: Tommy56
  SPI Schnittstellen für mehrere Geräte nutzen Hoffmakl 11 1.164 31.01.2019 15:41
Letzter Beitrag: Hoffmakl
  Klasse(Object) übergeben harry1952 5 544 14.01.2019 20:18
Letzter Beitrag: Tommy56
  Prüfung eines Drucksensors mit Hilfe des Arduino r4c3 20 5.576 17.11.2018 18:25
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste