Forum: Mikrocontroller und Digitale Elektronik enum class in .cpp auslagern


von Jens (Gast)


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?

von Yalu X. (yalu) (Moderator)


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

von Einer K. (Gast)


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.

von Dirk K. (merciless)


Lesenswert?

In der .h den enum ganz ans Ende packen?
Ansonsten über Includerei...

merciless

von Wilhelm M. (wimalopaan)


Lesenswert?

Jens schrieb:
> Ist das möglich?

Ja.
Wo hast Du ein Problem?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.