Handsup18 Geschrieben 24. April 2009 Teilen Geschrieben 24. April 2009 Hallo, haben grad in der Schule mit der Vererbung angefangen. Nun hab ich die uns gestellte Aufgabe auch programmiert und bin mir sicher das dies so Funktioneiren muss. Nur bekomm ich beim Ausführen immer die Fehlermeldung "Typname erwartet". Kann sich mal jemand das Prog anschauen und evtl. einen Tipp geben was noch Falsch ist. In der Aufgabe musste man zuerst einen normalen Zähler Programmieren (TCounter) der vor- und rückwärts zählt. Das ist kein Problem, die Aufgabe hat Funktioneiert. Danach hat man eine Kindklasse anlegen müssen die den Zählwert BCD-codiert ausgibt. Hier hab ich nun das Problem mit der Meldung. hier der Inhalt der Counter.h... ------------------------------------------------ class TCounter { protected: int ZaehlWert ; public: void CountUp(); void CountDown(); void Reset(); int GetCounterValue(); TCounter(); }; ------------------------------------------------ Counter.cpp ------------------------------------------------ #include "Counter.h" //Deklaration Konstrukter TCounter::TCounter() { ZaehlWert=0; } void TCounter::CountUp() { ZaehlWert++; } void TCounter::CountDown() { ZaehlWert--; } void TCounter::Reset() { ZaehlWert = 0; } int TCounter::GetCounterValue() { return ZaehlWert; } ------------------------------------------------ und hier der von BCDCounter.h ------------------------------------------------ #include "math.h" class TBCDCounter : public TCounter { int Zahl; int buf[4]; public: TBCDCounter(); int GetBCDCounter(); }; ------------------------------------------------ BCDCounter.cpp ------------------------------------------------ #include "BCDCounter.h" #include "Counter.h" TBCDCounter::TBCDCounter() //: TCounter() { } int TBCDCounter::GetBCDCounter() { if (Zahl < 9) { return Zahl; } if (Zahl < 99) { int ex = 1; buf[0] = Zahl/pow(10,ex); buf[1] = Zahl - (buf[0]*pow(10, ex)); buf[0] = buf[0] << 4; return (buf[0] | buf[1]); } if (Zahl < 999) { int ex = 2; buf[0] = Zahl/pow(10, ex); buf[1] = (Zahl - (buf[0]*pow(10, ex)))/pow(10, ex-1); buf[2] = Zahl - (buf[0]*pow(10, ex)) - (buf[1]*pow(10, ex-1)); buf[0] = buf[0] << 8; buf[1] = buf[1] << 4; return ((buf[0] | buf[1]) | buf[2]); } if (Zahl < 9999) { int ex = 3; buf[0] = Zahl/pow(10, ex); buf[1] = (Zahl - (buf[0]*pow(10, ex)))/pow(10, ex-1); buf[2] = (Zahl - (buf[0]*pow(10, ex)) - (buf[1]*pow(10, ex-1))) / pow(10, ex-2) ; buf[3] = Zahl - (buf[0]*pow(10, ex)) - (buf[1]*pow(10, ex-1)) - (pow(10, ex-2)) ; buf[0] = buf[0] << 12; buf[1] = buf[1] << 8; buf[2] = buf[2] << 4; return ((buf[0] | buf[1]) | (buf[2] | buf[3])); } } ------------------------------------------------ Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 24. April 2009 Teilen Geschrieben 24. April 2009 Bitte ein Thema nur in einem Unterforum posten, siehe Boardregeln. Hier geht's weiter: http://forum.fachinformatiker.de/c-c/127024-problem-vererbung-klassen.html -> Thread geschlossen. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge