virtual void f(int) = 0;
Таза виртуалды əдіс туынды класта қайта анықталуы тиіс (қайтадан таза
виртуалды əдіс ретінде анықталуы мүмкін).
Егер
monstr
класындағы
draw
əдісін
виртуалды əдіс ретінде анықтасақ,
қай кластың əдісін шақыру қажеттігі туралы шешім нұсқауыш сілтеме жасай-
тын объектінің типіне байланысты қабылданатын болады:
monstr *r. *р;
r = new monstr; // monstr класының объектісі құрылады
р = new daemon; // daemon класының объектісі құрылады
r->draw(l, 1, 1, 1); // monstr::draw əдісі шақырылады
p->draw(l, 1, 1, 1); // daemon::draw əдісі шақырылады
р-> monstr::draw(l, 1, 1, 1); // Виртуалды əдістер
// механизмін қолданбау
Егер
Достарыңызбен бөлісу: |