最初の引数に基づいて2番目の引数の型を調整するC++関数を記述したいと思います。 C++の引数型を変更するベストプラクティス
enum FtnType { FTN_A, FTN_B, FTN_C };
void bar(FtnType foo, const int arg = 0)
{
switch(foo)
{
case 0:
{
void ftnA(arg);
break;
}
case 1:
{
void ftnB();
break;
}
case 2:
{
void ftnC(arg);
break;
}
}
}
今
case 0
のために、私は任意の引数を使用したくないと
case 3
のために、私は引数型がfloatになりたい
case 1
ためのarg、整数になりたい:私はこのようなものを持っています。私はケース内でタイプをキャストすることができますが、それは悪いプログラミングのように思えます。この問題を解決するにはどうすればよいでしょうか?
キャスト。できれば 'static_cast'を使ってください。 –
'bar()'を呼んでいる人は、どのような型を望んでいるのかを知っていますか? – Galik
'bar 'を呼び出すときに' arg'を 'int'または' float'にしたい場合はテンプレートやオーバーロードが必要でしょう。 – bbaldino