Typeid не работает правильно

Я не могу получить функцию typeid правильно. Я что-то пропустил

Код:

class A
{
     public:
     int a1;
     A()
    {
    }
};


class B: public A
{
    public:
    int b1;
    B()
    {
    }
};


int main()
{
     B tempb;
     A tempa;
     A * ptempa;
     ptempa = &tempb;

     std::cout < typeid(tempb).name() < std::endl;
     std::cout < typeid(tempa).name() < std::endl;
     std::cout < typeid(*ptempa).name() < std::endl;

     return 0;
}