私はc++ 11とブーストでプログラミングしており、誰かがクラス Baseから継承してmethod()を実装する必要があるある種のフレームワークを実装しようとしていますが 、これは他の継承に依存する可能性があります。これらの継承は、プログラマが変更することなく、メイン関数で自動的に作成される必要があります。
class Base
{
public:
virtual void method() = 0;
}
class A : public Base
{
public:
static int state = 0;
void method() //
{
//do something with B
A::state = B::state * 3;
}
}
class B : public Base
{
public:
static int state = 0;
void method() //
{
//do something with A
B::state = A::state * 2;
}
}
int main()
{
//Access to an Array containing ONE pointer to each Inheritance
vector<Base*> inheritancesOfBase;
inheritancesOfBase.push_back(new A); // <- should be done automatically
inheritancesOfBase.push_back(new B); // <- should be done automatically
//PSEUDOCODE
for_each(base* pInh in inheritancesOfBase)
{
pInh->method();
clones.push_back(pInh->clone());
}
return 0;
}
これは、派手なメタプログラミングで実行できるはずだと思いますが、どうすればよいでしょうか?
編集:明確化