C++是否有现有的方法来检查对象是否是派生类型的对象?例如,
class A
{};
class B : public A
{};
A* p;
Run Code Online (Sandbox Code Playgroud)
并检查是否p指向B.
T.C*_*.C. 10
如果类是多态的(即,至少有一个虚拟成员函数),则可以使用dynamic_cast或typeid.
否则,没有.跟踪对象的动态类型会产生成本,并且该语言旨在避免对不需要它的代码进行悲观化.
并检查是否
p指向B.
dynamic_cast如果virtual类中至少有一个成员函数,则可以使用它.制作析构函数是很常见的virtual.
class A
{
virtual ~A() {}
};
Run Code Online (Sandbox Code Playgroud)
然后,
B* bPtr = dynamic_cast<B*>(p);
if ( bPtr )
{
// Use the pointer
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
866 次 |
| 最近记录: |