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

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
}