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 InputPort von Port erbt, aber Port gleichzeitig ein Array von InputPort s 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!


Anmelden zum Antworten