次のような単純なプログラムがある場合:-
class Program
{
public:
my_func(void) \\ What return type do I use here??
{
switch (i) \\ assume i comes from somewhere...
{
case 1:
{
Glue g;
g.init();
return g;
}
case 2:
{
Wood w;
w.init();
return w;
}
....
}
}
}
この関数の戻り値の型を、いずれかのスイッチ ケースで作成されたオブジェクトに設定する方法を教えてもらえますか? また、時間の制約により、オブジェクトの作成に new/delete を使用できないか、void* ptr を返すだけです。スイッチで作成されたオブジェクトは十分に大きいので、それぞれの場合にそれらを作成し、範囲外にならずにそれらへの参照を返すことは可能ですか?