enum class in .cpp auslagern

Gast #6112861
Wie handhabt ihr die Situation, wenn ein großes Enumes die 
Übersichtlichkeit eurer .h zerstört?

Ich würde gerne, falls möglich, die enums zur Übersichtlichkeit in einer 
anderen Datei definieren, sollen dennoch Mitglied der Klasse bleiben.
1
class Test{
2
  public:
3
    enum class Testenum;
4
};
5

6
enum class Test::Testenum{
7
...
8
};

Ist das möglich?
Moderator
Du musst halt dafür sogen, dass diejenige Datei, in der die
Enum-Elemente mit

1
enum class Test::Testenum {
2
...
3
};

deklariert sind, über all dort inkludiert wird, wo diese verwendet
werden.

Ich würde die Datei mit den Enum-Elementen direkt nach der Deklaration
der Klasse Test inkludieren:

test.h
1
...
2

3
class Test {
4
  public:
5
    enum class Testenum;
6
};
7

8
#include "testenum.h"
9

10
...

testenum.h
1
#ifndef TESTENUM_H
2
#define TESTENUM_H
3

4
enum class Test::Testenum { 
5
...
6
};
7

8
#endif
Gast
Jens schrieb:
> Ich würde gerne, falls möglich, die enums zur Übersichtlichkeit in einer
> anderen Datei definieren, sollen dennoch Mitglied der Klasse bleiben.
Naja...

Die unschöne Variante wäre:
Ein include mitten in die Klassendefinition hinein.

In eine andere Klasse auslagern und erben.

Ist es wirklich nötig die Aufzählung IN der Klasse zu definieren?
Oder würden es reichen, wenn sich Klasse und Enum im selben Namespace 
befinden.
Das wäre wohl der Weg, wie ich es angehen würde.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.