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
  Bei Änderung eines Zustandes (boolean) Aktion auslösen - wie? Gelegenheitsbastler 3 429 04.07.2017 10:50
Letzter Beitrag: Gelegenheitsbastler
  MCP2307 - wie fragt man den Zustand eines Ausganges ab? Gelegenheitsbastler 2 304 22.06.2017 14:04
Letzter Beitrag: Gelegenheitsbastler
  Lineares Messsystem zur Positionsbestimmung mithilfe eines Hallsensors Philipp_ 3 432 05.04.2017 16:29
Letzter Beitrag: ardu_arne
  Verständnisfrage: Instanz innerhalb einer Klasse tuxedo0801 6 284 28.03.2017 19:40
Letzter Beitrag: georg01
  SPI Flash mit SD Library ansprechen/nutzen? tuxedo0801 1 274 24.03.2017 12:01
Letzter Beitrag: tuxedo0801
  2. Router intern Nutzen. comfan 12 662 28.01.2017 17:55
Letzter Beitrag: hotsystems
  Bibliothek von Arduino Uno für Micro Pro nutzen? pagaty 1 220 12.01.2017 22:26
Letzter Beitrag: Bitklopfer
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 764 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
  Ansteuern eines Schrittmotors Uwe1475 28 1.962 03.09.2016 21:03
Letzter Beitrag: Uwe1475
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 1.495 16.07.2016 11:43
Letzter Beitrag: Binatone

Gehe zu:


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