Příklad
class
Base {
public
:
void
fnc(){}
};
class
Derived:
public
Base
{
public
:
void
fnc(){}
};
void
f
unction(
Derived
*dp
){
Base
*ptr
= (
Base
*
)
dp
;
ptr
->fnc();
}
Řešení
Nepřetypovávejte ukazatel jedné třídy na ukazatel zděděné třídy.
class
Base {
public
:
virtual void
fnc(){}
};
class
Derived:
public
Base
{
public
:
virtual
void
fnc(){}
};
void
function
(
Derived
*dp
){
dp
->fnc();
}