#include <typeinfo>
#include <iostream>
class A
{
public:
virtual ~A() { }
};
class B : public A
{
public:
virtual ~B() { }
};
int main(int argc, char* argv[])
{
int i = 0;
std::cout << typeid(i).name() << std::endl;
std::cout << typeid(int).name() << std::endl;
std::cout << "i == int ? ";
std::cout << (typeid(i) == typeid(int) ? "true" : "false") << std::endl;
A* pA = new B;
A& refA = *pA;
std::cout << "pA = " << typeid(pA).name() << std::endl;
std::cout << "*pA = " << typeid(*pA).name() << std::endl;
std::cout << "A = " << typeid(A).name() << std::endl;
std::cout << "B = " << typeid(B).name() << std::endl;
std::cout << "refA = " << typeid(refA).name() << std::endl;
return 0;
}
最終更新:2008年06月29日 11:58