重複の可能性:
派生クラス名を基本クラスに出力する
私は 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
ここで基本クラスが派生クラスの型を正しく伝えることができない理由を誰かに説明してもらえますか? どうもありがとう