лады. Олардың арасында айырмашылық мұралау кезінде көрінеді, оны келесі
217
Қол жеткізу кілті
Базалық кластағы
спецификатор
Туынды кластан қол
жеткізу
private
private
жоқ
protected
private
public
private
protected
private
жоқ
protected
protected
public
protected
public
private
жоқ
protected
protected
public
public
Кестеден көрініп тұрғандай, кілттен тəуелсіз түрде базалық кластың
private
элементтеріне туынды кластан қол жеткізуге болмайды. Оларды тек
базалық класс əдістері арқылы ғана пайдалануға болады.
protected
элементтері
private
кілті арқылы мұралау кезінде туынды
класта
private
түрінде болады, ал басқа жағдайларда оларға қол жеткізу
құқықтары өзгермейді.
Мұралау кезінде
public
элементтеріне қол жеткізу кілтке сəйкес орын-
далады.
Егер базалық класс
private
кілті арқылы мұраланса, онда туынды кластың
public
секциясында көріну аймағына қол жеткізу операциясының көмегімен
оның кейбір элементтерін таңдамалы түрде туынды кластан қол жеткізугу бо-
латындай етуге болады:
class Base{
...
public: void f();
};
class Derived : private Base{
...
public: Base::void f();
};
Қарапайым мұралау
Туынды кластың бір ғана ата-тегі (базасы) болса, мұндай мұралау түрі
қарапайым мұралау деп аталады. Кластың əртүрлі əдістері үшін əртүрлі
мұралау ережелері бар – мысалы, туынды класта конструкторлар жəне
меншіктеу операциясы мұраланбайды, ал деструкторлар мұраланады.
Кластардың мұралануын жəне мұндайда туындайтын қиындықтарды бір мы-
сал арқылы қарастырайық.
218
monstr
класынан туындайтын, кейбір кездерде пайдалы болып табыла-
тын ойлау қабілеті қосылған
daemon
класын құрайық. Базалық класс осы-
дан бұрынғы бөлімдерде енгізілген кейбір əдістермен бірге сипатталған:
Достарыңызбен бөлісу: