2、动态转换(Dynamic Cast):
class Base {
virtual void foo() {}
};
class Derived : public Base {
};
Base* basePtr = new Derived;
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);
if (derivedPtr) {
// 转换成功
} else {
// 转换失败
}
使用 dynamic_cast 关键字。
主要用于基类和派生类之间的转换。
特点: 在运行时执行,提供类型安全检查。仅适用于具有虚函数的类层次结构。
优势: 提供运行时类型检查,防止错误的类型转换,使得代码更加安全。
|