Esempio
class
Base {
public
:
void
fnc(){}
};
class
Derived:
public
Base
{
public
:
void
fnc(){}
};
void
f
unction(
Derived
*dp
){
Base
*ptr
= (
Base
*
)
dp
;
ptr
->fnc();
}
Soluzione
Non eseguire il casting di un puntatore di una classe al puntatore di una classe ereditata.
class
Base {
public
:
virtual void
fnc(){}
};
class
Derived:
public
Base
{
public
:
virtual
void
fnc(){}
};
void
function
(
Derived
*dp
){
dp
->fnc();
}