Typeid não está funcionando corretamente

Não consigo obter corretamente a função typeid. Estou esquecendo de algo

Código:

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;
}

Sempre imprime:

Classe B Classe A Classe A

Estou usando o VS2010 para meu projeto

questionAnswers(3)

yourAnswerToTheQuestion