Thema: C++ Assigned in C++

Einzelnen Beitrag anzeigen

mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#2

AW: Assigned in C++

  Alt 26. Sep 2018, 12:59
Ist dir klar, das Delphi ClassObjekte nur "Zeiger" sind und nur Delphi RecordObjekte dem von dir hier gezeigtem C++ Style der Adruino direkt vergleichbar wären?

daher in deinem aktuellem Code:
"if(&inletValve != NULL)" ist immer Wahr, weil du dein "inletValve" als statisches Speicherobjekt angelegt hast.
"&inletValve" ist die Adresse deines objekts im Speicher und die ist immer ungleich NULL, Speicher spartst du so nicht, weil der ja bei dir so immer fix angelegt.

Soweit so gut und einfach in "echtem" C++... einfach als Pointer anlegen und mit new erzeugen...

anlegen
Valve *pinletValve;

bei Bedarf erzeugen
if(hasInValve) pinletValve = new Valve(...); else pinletValve=NULL;

nur wenn vorhanden nutzen
if(pinletValve) pinletValve->switchOn();

"Assigned" braucht es in c/c++ nicht, man schreibt einfach if(p)
Adruino C++ kenne und habe ich nicht, daher keine Garantie ob dynamische "HW" Objekte mit Adruino C++ möglich sind.
  Mit Zitat antworten Zitat