【发布时间】:2020-10-03 02:26:18
【问题描述】:
我有以下课程:
class Base{
public:
virtual int do_Something();
};
class ChildA : public Base {
public:
int do_Something(); // ChildA does something
};
class ChildB : public Base {
public:
int do_Something(); // ChildB does something
};
在我的 main.cpp 中,我想根据用户设置的特定配置创建一个对象 ChildA() 或 ChildB()。
我的尝试,在函数main() 中是:
...
int config = 1; // selected by the user
Base* classe;
std::cout<<typeid(classe).name() << std::endl; // check class name
if (config==0){
classe= new ChildA();
}
else if (config==1){
classe= new ChildB();
std::cout<<typeid(classe).name() << std::endl; // check class name
}
...
问题
我希望打印出来的名称会有所不同。相反,输出是:
P4Base
P4Base
【问题讨论】:
-
什么是
renderer?这是 Python 还是 C++if config==0:? -
对不起,我更正了。这是
classe的课程@ -
This answer 可能会引导您朝着正确的方向前进。
-
@ThomasSablik 谢谢,问题现在应该是正确的。
-
不,不正确。显然你没有尝试编译它。
标签: c++ class inheritance casting polymorphism