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

c++部类检查//做什么类型检查,可以知道p 是A还是C呢

2014-01-06 
c++类型检查//做什么类型检查,可以知道p 是A还是C呢?Class A{}Class B : public A {}Class C : public A

c++类型检查//做什么类型检查,可以知道p 是A还是C呢?
Class A{};
Class B : public A {};
Class C : public A {};

A* p = new B();
A* p2 = new C();

void fun(A* p )
{
    //做什么类型检查,可以知道p 是A还是C呢?
}
[解决办法]
在楼主给出的场景下,dynamic_cast应该是个可行的选择。
但是,要运行时性能损耗作为代价。

引用:

Class A{};
Class B : public A {};
Class C : public A {};

A* p = new B();
A* p2 = new C();

void fun(A* p )
{
   if(dynamic_cast<B*>(p))
    //是B
   else if(dynamic_cast<C*>(p))
    //是C
   else
    //仅仅是A
}

热点排行