#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