读书人

c++部类检查//做什么类型检查可以知

发布时间: 2014-01-06 15:53:52 作者: rapoo

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
}

读书人网 >C++

热点推荐