C++相談室 part44
■ このスレッドは過去ログ倉庫に格納されています
0078デフォルトの名無しさん
2005/10/08(土) 05:28:58ちなみにコンパイラはBCC++5.5です。以下のソースでは「クラスメンバーを初期化できない」というエラーになりました。
名前から関数への変換に、テーブルを使わずにif()の連続攻撃なら、コンパイルできますが、あまりに愚かしいので・・・
#include <string.h>
class X{
public:
void FuncA(void);
void FuncB(void);
typedef struct tagNAMETOFUNC{
char* Name;
void (*Func)(void);
} NAMETOFUNC;
NAMETOFUNC NameToFunc[] = {
{"FuncA", FuncA},
{"FuncB", FuncB},
};
void Select(char *Name){
int i;
for (i = 0; i <= 1; i ++){
if (strcmp(Name, NameToFunc[i].Name) == 0){
NameToFunc[i].Func();
return;
}
}
}
};
■ このスレッドは過去ログ倉庫に格納されています