zwei enums mit teilweise gleichem Inhalt
-
Hi,
hab folgende Situation: hab eine Klasse installiert, die die Eigenschaften von einem seriellen Port beinhalten soll. Dieser kann entweder als Input oder als Output konfiguriert sein (definiert über: BOOL type).
Zusätzlich gibt es eine Stringliste, die alle notwendigen Eigenschaften dieser Klasse beinhaltet; über die beiden Enums kann ich die einzelnen Werte aufrufen. Jedoch unterscheiden sich diese zwischen Input und Output (siehe die beiden Enums).
Wie kann ich die beiden Enums definieren, dass jede Klasse nur ein Enum besitzt (in Abhängigkeit davon ob es sich um einen Input oder einen Output handelt)?
Nachdem es sich bei ACTIVE,IP immer um die gleichen Eigenschaften handelt,wollte ich hier nicht zwei unterschiedliche Namen vergeben (einen für Input und einen für Output).
class Port { protected: BOOL type; //entweder input oder output //serial-port: input type enum input { ACTIVE = 0, OPT = 1, IP = 2, TIME = 3, }; //serial-port: output-type enum output { ACTIVE = 0, IP = 1, }; };Gruß
Damian
-
Du hast also einen Port, der entweder Input oder Output sein kann. Statt nun ein Port zu haben in diesem zwischen Input und Output umzuswitchen, solltest lieber eine Basisklasse Port haben und von dieser dann Input und Output ableiten:
class Port {}; class InputPort : public Port{}; class OutputPort : public Port {};Vielleicht löst sich ja auch so dein enum Problem

-
Hi,
kannst du mir ganz kurz sagen, wo mein Fehler in der Implementierung liegt?
/* *********** port class header *************** */ #include "inputport.h" #include "outputport.h" class Port { protected: InputPort m_In[2]; OutputPort m_Out[10]; }; /******** input port class header ************/ #include "port.h" class InputPort : public Port { };Bekomme in der Port.h als Fehler, dass die Klasse Port undefiniert ist...

Gruß
Damian
-
Es erscheint etwas merkwürdig, dass
InputPortvonPorterbt, aberPortgleichzeitig ein Array vonInputPorts als Member hat.
-
Mir erscheint auch merkwürdig, dass er imputport und outputport in port inkludiert.
-
mir auch -> daher hab ich es geändert

Danke für den Hinweis!