Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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]));

}

}

------------------------------------------------

Nur bekomm ich beim Ausführen immer die Fehlermeldung "Typname erwartet".

Wo bekommst Du den Fehler? Die Fehlermeldung ist jetzt so nicht direkt ersichtlich. Außerdem ist es immer hilfreich, wenn Du dazu sagst unter welcher Plattform und mit welchem Kompiler inkl Version Du entwickelst.

Ich hab jetzt so keine Lust Deine Code mir selbst zusammen zu kopieren und zu testen. Stell ein Zip mit den entsprechenden Dateien rein, dann kann man das auch testen.

Phil

im BCDCounter.h fehlt ein:

#include "Counter.h"

ich denke, dass GetCounterValue() durch GetBDCCounter() überladen wird. Das Problem ist dabei, dass die eine Funktion auf den Wert "Zaehlwert" und die andere auf den Wert "Zahl" zugreift. "Zahl" wird nicht initialisiert und verändert.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.