範例
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();
}