typeid 기능을 올바르게 사용할 수 없습니다. 나는 뭔가를 놓치고 있습니까유형 ID가 올바르게 작동하지 않습니다.
코드 :
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;
}
그것은 항상 인쇄 :
클래스 B 클래스 A 클래스 A
내 프로젝트에 대한 VS2010를 사용하고
이것은 Clang 4.2를 사용하여 동일하게 동작합니다. 나는 그것이 틀리게 본 것을 동의한다.문서 정의에서 typeid는 포인터의 유형이 아닌 포인터가 가리키는 유형을 제공합니다. 미안하지만 그건 도움이 안돼. 도덕적 지원 ... –