可能重复:
在基类中打印派生类名称
我正在使用 GCC,下面的代码输出了一些意想不到的东西
#include <iostream>
#include <typeinfo>
using namespace std;
class B {
public:
B ( B * ptr) { cout<< typeid(*ptr).name()<<endl;}
};
class D : public B {
public:
D() : B(this) { cout<<typeid(this).name()<<endl;}
};
int main()
{
D d;
return 0;
}
输出:
1B
P1D
谁能给我解释一下为什么基类不能正确地告诉派生类的类型?非常感谢