Hallo, ich hoffe Ihr könnt mir helfen. Ich habe eine Datei mit 2 Klassen angehangen. Ich weiß, dass die Klassen normalerweise in Extradatein erstelle werden. Aber zur Übersicht habe ich alles in eine Datei gepackt. Im Debug-Mode kann ich den Ausgang setzen. Es ist die Hintergrundbeleuchtung von einem Display. Ich habe einen ATMega32 mit mehreren Komponenten. Aber die Hintergrundbeleuchtung kann nicht von denen beeinflusst werden. Ich verwende das Atmel Studio 7 (installiert auf Windows 10 pro) und eine AVR-Dragon. Was habe ich falsch gemacht? Ein Fehlermeldung vom Compiler kommt nicht. Der Code ist auch nach C++11 Standard. Soweit ich weiß. Liegt es an der Output-Klasse? Oder an der Test-Klasse? Oder habe ich einen anderen Fehler? Vielen Dank im voraus für eure Hilfe. Grüße Daniel
Daniel schrieb: > Was habe ich falsch gemacht? Der Ausgang wird nicht konfiguriert und auch nicht gesetzt....
Die Konstruktor Parameter _DDR usw. sind weder Referenzen noch Pointer. Daher wird beim Konstruktor Aufruf der Inhalt der Register ausgelesen, und die Member Variablen zeigen dann auf die Kopieen. Sobald der Konstruktor zurück kehrt, werden die Kopien gelöscht und die Zeiger zeigen ins Nichts (sicher dass da keine Compiler Warnung kommt?!). Du musst die Parameter auch zu Pointern machen. Außerdem sind Namen wie _DDR verboten- alles was mit Unterstrich + Großbuchstaben oder zwei Unterstrichen anfängt ist reserviert. Deine ganzen return; sind nutzlos, lass die weg. Das (void) bei Funktionen ist in C++ ebenfalls überflüssig.
Daniel schrieb: > Ein Fehlermeldung vom Compiler kommt nicht. Eine Fehlermeldung nicht, aber eine Warnung sollte schon kommen. Sind die denn alle eingeschaltet? Dr. Sommer schrieb: > Du musst die Parameter auch zu Pointern machen. Oder alles mit Referenzen machen. Also Parameter und Member. Gibt ja eigentlich keinen wirklichen Grund für Zeiger.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.