私は列挙型クラスを持っていた、と言う
enum class Enum{
var1, var2;
}
ここで、パラメータに依存するメンバーを追加したいと思いますvar3(int)
。OK、列挙型ではないので、通常のクラスで変更したいのですが、私の目標は、古いコード(Enum::var1
タイプの値としてEnum
)をコンパイルできるようにすることです。
私はそれをこのようにしようとしました(一時的に忘れvar3
ましょう、それは静的関数になります):
class Enum{
public:
const static Enum var1 = Enum(1);
const static Enum var2 = Enum(2);
private:
Enum(int v):v(v){
}
int v;
//operator == using v
};
ただし、列挙型の型が不完全なため、コンパイルされません。
ヘッダーにあるため、クラスの後で宣言できません。複数のCPPでは機能しません。その上、ここにパブリックコンストラクターを置くのは良い考えではありません。
何かご意見は?