读书人

typeid有关问题

发布时间: 2012-09-19 13:43:54 作者: rapoo

typeid问题
c++primer习题18-20;

C/C++ code
#include<iostream>#include<fstream>using namespace std;class A{public:    A()    {    }    ~A()    {    }};class B : public A{public:    B()    {    }    ~B()    {    }};class C : public B{public:    C()    {    }    ~C()    {    }};int main(){//////////////////////////////////////////////////////////////////    B *px = new B;    A &ra2 = *px;    cout << typeid(ra2).name() << endl;//应该输出什么?习题解答上说是B,vs2008输出class A//////////////////////////////////////////////////////////////////    return 0;}


[解决办法]
你给A类型随便加个虚函数就可以了,
我理解是VS对RTTI的支持依赖于虚表,如果A不存在虚函数,就没有虚表了。但是你main里面的引用赋值也不会发生多态关系。

读书人网 >C++

热点推荐