class Inheritance1 : public Base {}; class Inheritance2 : public Base {};
int main(int argc, char **argv) { Base *instance; switch(argv[1]){ case 1: Base = new Inheritance1; break; case 2: Base = new Inheritance2; break; } } って言うのを巧く書く方法無いですか? 継承クラスが増えてからcase書き加えていくのだるいんですけど。
int main(int argc, char **argv) { argv[1] instance; } みたいなの。
test.cc: In function `int main()': test.cc:15: error: cannot convert `void (foo::*)() const' to `void (foo::*)()' for argument `1' to `void f(void (foo::*)())' test.cc:16: error: cannot convert `void (foo::*)()' to `void (foo::*)() const' for argument `1' to `void g(void (foo::*)() const)'
こんなのやり方わかる方いますか? 注意:以下のソース、コンパイル通らない class CHoge1{ class CHoge2{ int m_Value2;//変数名を変える必要もないけどサンプルだし public: CHoge2(n){m_Vaue2 = n;} }; int m_Value1; const static CHoge2 m_ins[]; };