我在C++ 11和升壓編程的情況下,我想實現某種框架,其中一個人只需要從Base類繼承,並實現()方法 ,這可能取決於其他繼承。 然後應該在主函數中自動創建這些繼承,而不需要程序員進行任何修改。自動創建繼承
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;
}
我認爲這應該是可以與一些花式元編程,但如何?
編輯:澄清
目前尚不清楚你真正想要什麼 - 在運行時創建一些As和Bs,或者在運行時創建新類的類型(使用編譯時元編程...?) – doctorlove
最後,我想有一個數組包含每個繼承的一個實例(或指針)。 – Paul
我想我已經找到了解決我的問題[這裏] [1] [1]:http://stackoverflow.com/questions/17410942/c-automatic-instantiation-of-derived-classes – Paul