在 C++ 中,我将该类Base
作为接口类和 2 个继承类:Base1
并且Base2
来自这样的Base
类:
class Base{
public:
virtual void printSomething() = 0;
// Some bla bla code...
};
class Base1 : public Base{
public:
Base1();
void printSomething();
};
class Base2 : public Base{
public:
Base2();
void printSomething();
};
通常,在我的 main.cpp 中,我必须包含以下代码:
Base *b;
string base_name = "Base1"; // or "Base2"
if(base_name.compare("Base1") == 0){
b = new Base1();
}else{
b = new Base2();
}
所以,我想使用 Base *b = base_name()
而不是if()else()
上面的块。在 C++ 中,这可能吗,如何?谢谢!