26 lines
478 B
C++
26 lines
478 B
C++
// 在使用时需要注意:被转换对象obj的类型T1必须是多态类型,即T1必须公有继承自其它类,或者T1拥有虚函数(继承或自定义)。若T1为非多态类型,使用dynamic_cast会报编译错误。
|
||
|
||
// A为非多态类型
|
||
|
||
class A {};
|
||
|
||
// B为多态类型
|
||
|
||
class B {
|
||
|
||
public:
|
||
virtual ~B() {}
|
||
};
|
||
|
||
// D为非多态类型
|
||
|
||
class D : public A {};
|
||
|
||
// E为非多态类型
|
||
|
||
class E : private A {};
|
||
|
||
// F为多态类型
|
||
|
||
class F : private B {}
|