首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

typeid有关问题

2012-09-19 
typeid问题c++primer习题18-20;C/C++ code#includeiostream#includefstreamusing namespace stdclass

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里面的引用赋值也不会发生多态关系。

热点排行