Func(1);
と実行したとします。Func関数は下に書きます。
Func関数の中で、引数に応じて異なるクラスを同じ変数名で作成したいのですが、
単純なif文やswitch case文ではローカル変数になってしまい、その外では使えません。
#if文で書こうとしたのですが、引数アリでも無しでも何故かClassAの文、つまり
#if (num == 0)
にしかいけません。
void Func(int num = 2) {
#if (num == 0)
ClassA maker();
#elif (num == 1)
ClassB maker();
#elif (num == 2)
ClassC maker();
#else
ClassD maker()
#endif
maker.create();
}
よろしくお願いします。