static const Memberelement gleicher Klasse



  • Hi, irgendwie bekomme ich folgendes nicht auf die Reihe:

    Ich eine Klasse, die ein char beinhaltet, sich aber von char deutlich unterscheiden soll. Nun möchte ich einige Standard-Werte anlegen, die als Konstanten fungieren und sich innerhalb des Namespace befinden sollen und natürlich auch nicht verändern lassen sollen.
    Allerdings möchte ich den Himmelrichtung(char) Konstruktor private halten, so dass man nur auf die vorhandenen Objekte zugreifen kann, ohne diese zu verändern zu können.

    Header:
    
    class Himmelsrichtung
    {
      static const Himmelsrichtung Nord;
      static const Himmelsrichtung West;
      static const Himmelsrichtung Ost;
      static const Himmelsrichtung Sued;
    
      private: 
        char value;
        Himmelsrichtung( char h ) : value( h ) {}
    };
    
    .cpp:
    
    Himmelsrichtung Himmelsrichtung::Nord( 'n' );
    Himmelsrichtung Himmelsrichtung::West( 'w' );
    ...
    

    Das Problem: Das klappt nicht... ich bekomme das nur mit static-Zeigern hin. Ich will aber keine Zeiger und ich will konstante Instanzen... und ich hab' kein C++-Nachschlagewerk hier 😞

    Klassenintern kann ich die Objekte nicht installieren, verzweifelte Versuche wie das Folgende fallen mir auch nicht mehr ein.

    Himmelsrichtung Himmelsrichtung::Nord = Himmelsrichtung( 'n' );
    

    Kann mir jemand auf die Sprünge helfen?



  • // .cpp:
    
    const Himmelsrichtung Himmelsrichtung::Nord('n');
    const Himmelsrichtung Himmelsrichtung::West('w');
    


  • finix schrieb:

    // .cpp:
    
    const Himmelsrichtung Himmelsrichtung::Nord('n');
    const Himmelsrichtung Himmelsrichtung::West('w');
    

    You're my hero 🙂

    DANKE!


Log in to reply