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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren