Je travaille avec une classe héritage qui ressemble à ceci:Séparation des énumérations de définitions de classe en utilisant des espaces de noms en C++?
class A
{
enum Flags { One = 1, Two = 2 };
};
Je voudrais retirer tous les énumérations dans un nouvel espace de nom défini dans un nouvel en-tête:
// flags.h
namespace flags {
enum Flags { One = 1, Two = 2 };
};
Ensuite, tirer ces énumérations de nouveau dans la classe afin que je puisse inclure juste le flags.h des en-têtes qui ne nécessitent que ces valeurs (plutôt que toute la définition de la classe):
// a.h
#include "flags.h"
class A
{
using namespace flags;
};
Comment dois-je faire cela?
Pouvez-vous préciser ce qui fonctionne et ne fonctionne pas pour vous, et comment vous voulez l'utiliser dans le code? Pourquoi ne pas mettre les enums dans une superclasse? –