示例
class
Base {
public
:
void
fnc(){}
};
class
Derived:
public
Base
{
public
:
void
fnc(){}
};
void
f
unction(
Derived
*dp
){
Base
*ptr
= (
Base
*
)
dp
;
ptr
->fnc();
}
解决方案
不要将一个类的指针强制转换成指向其父类的指针。
class
Base {
public
:
virtual void
fnc(){}
};
class
Derived:
public
Base
{
public
:
virtual
void
fnc(){}
};
void
function
(
Derived
*dp
){
dp
->fnc();
}