Non riesco a ottenere correttamente la funzione di tipo. Mi sto perdendo qualcosaTypeid non funziona correttamente
Codice:
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;
}
E 'sempre stampe:
Classe B Classe A Classe A
Sto usando VS2010 per il mio progetto
Si comporta allo stesso modo con Clang 4.2. Sono d'accordo che sembra sbagliato.Dalla definizione di documentazione typeid fornisce il tipo di ciò che è puntato non il tipo del puntatore. Mi dispiace non è di aiuto. Supporto morale ... –