トップページ > プログラム > 2019年09月08日 > ijKgjVtQ

書き込み順位&時間帯一覧

32 位/146 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000001100000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part144

書き込みレス一覧

C++相談室 part144
888 :デフォルトの名無しさん[sage]:2019/09/08(日) 15:37:22.01 ID:ijKgjVtQ
選択肢になりうるクラスの共通の親を作れば
C++相談室 part144
896 :デフォルトの名無しさん[sage]:2019/09/08(日) 16:48:58.23 ID:ijKgjVtQ
全クラスに対応する必要なんてないんだったらこんな感じでいいんじゃないか
enum ClassName{
Hoge,
Hige,
Hage
}
std::any func(ClassName name){
std::any out;
switch(name){
case ClassName::Hoge:
out = new Hoge();
break;
case ClassName::Hige:
out = new Hige();
break;
case ClassName::Hage:
out = new Hage();
break;
}
return out;}

int main(){
//なんか文字列を受け取る
ClassName name;
//文字列をClassNameに変換する
auto fuga = func(name);
if(fuga.type() = typeid(Hoge*)){
auto hoge = std::any_cast<Hoge*>(fuga);
//hogeの処理
} else if 以下略
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。