enum class in .cpp auslagern

Gast #6112861
Lesenswert?
• ▲
▼
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 #6113684
Lesenswert?
• ▲
▼
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 #6113714
Lesenswert?
• ▲
▼
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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.