monstr класынан мұраланған өрістерді туынды класс функциялары пай-
далана алмайды, өйткені олар базалық класта
private түрінде анықталған.
Егер
daemon класында анықталған функциялардың осы өрістермен жұмыс
істеуі қажет болса, онда оларды базалық класта
protected түрінде анықтауға
немесе оларды
monstr класындағы функциялар көмегімен пайдалануға бола-
ды, немесе оларды осының алдындағы бөлімде көрсетілгендей, нақты түрде
daemon класында қайта анықтау керек (218 б.).
Əдістердің мұралануын қарастыра отырып,
daemon класында
сипатталған
draw əдісі
monstr класында дəл осы атауға ие болған əдісті
қайта анықтайтынына назар аударыңыз (себебі əртүрлі кейіпкерлерді бей-
нелеу əртүрлі орындалады). Осылайша, туынды класс базалық кластың іс-
əрекеттерін тек толықтырып қана қоймай, сонымен қатар түзете де алады
1
.
Базалық кластың қайта анықталған əдісіне туынды кластан қол жеткізу көріну
аймағына қол жеткізу операциясының (
:: ) көмегімен нақтыланған оның
атауы арқылы орындалады.
Виртуалды əдістер Объектілермен жұмыс көбінесе нұсқауыштар арқылы орындалады.
Базалық класс нұсқауышына кез келген туынды кластың объектісі адресінің
мəнін меншіктеуге болады (ашық мұралау кезінде):
1
Туынды класта тек виртуалды əдістерді қайта анықтаған жөн (келесі бөлімді қараңыз).
222
// Базалық класқа нұсқауыш сипатталады: monstr *p; // Нұсқауыш туынды класс объектісіне сілтеме жасайды: р = new daemon; Объектінің əдістерін шақыру нұсқауыш сілтеме жасайтын объектінің
нақты типіне емес, нұсқауыштың типіне сəйкес орындалады, сондықтан опе-
ратор орындалғанда, мысалы,