Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»


friend түрінде жариялану қол жеткізу спецификаторы болып  табылмайды жəне мұраланбайды. ЕСКЕРТУ



Pdf көрінісі
бет179/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   175   176   177   178   179   180   181   182   ...   465
Байланысты:
аибм сплюс

friend
түрінде жариялану қол жеткізу спецификаторы болып 
табылмайды жəне мұраланбайды.
ЕСКЕРТУ
Қандай функциялар мен кластардың достас немесе достас емес екенін класс өзі 
анықтайтынына назар аударыңыз.
Деструкторлар
Деструктор – бұл объектіге жұмсалып тұрған жады аймағын босату үшін 
қолданылатын əдістің ерекше түрі. Объект көріну аймағынан шыққан кезде 
деструктор автоматты түрде шақырылады:
□ жергілікті объектілер үшін – олар жарияланған блоктан шығу кезінде;
□ ауқымды объектілер үшін – 
main
функциясынан шығу процедурасының 
бір бөлігі ретінде;
□ нұсқауыштар арқылы берілген объектілер үшін деструктор 
delete 
операциясын колдану кезінде тікелей емес түрде шақырылады.
НАЗАР АУДАРЫҢЫЗ
Объектіге нұсқауыштың əрекет ету аймағынан шығу кезінде деструкторды автоматты 
түрде шақыру жүзеге асырылмайды.
Деструктордың атауы тильда белгісінен (~) басталады, одан кейін класс 
аты жазылады. Деструктордың қасиеттері:
□ аргументтері жəне қайтарылатын мəні болмайды;

const
немесе
static 
ретінде жариялануы мүмкін емес;
□ мұраланбайды;
□ виртуалды болуы мүмкін («Виртуалды əдістер» бөлімін қараңыз 221 б.).
Егер деструктор айқын түрде анықталмаған болса, компилятор автоматты 
түрде бос деструктор кұрады.
Объект құрамында динамикалық түрде бөлінетін жадыға нұсқауыштар 
бар болса, класта деструкторды тікелей айқын түрде сипаттау қажет, əйтпесе 
объектіні жою кезінде оның өріс-нұсқауыштары сілтеме жасаған жады бос 
аймақ ретінде белгіленбейді. Деструкторға нұсқауыш анықтау мүмкін емес.
Бұрыннан қарастырылып келе жатқан мысал үшін деструктор (204 б.) 
төмендегідей түрде болуы тиіс:
monstr::~monstr() {delete [] name;}


205
Деструктордың толық нақтыланған атын көрсету арқылы оны тікелей 
түрде шақыруға болады, мысалы:


Достарыңызбен бөлісу:
1   ...   175   176   177   178   179   180   181   182   ...   465




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет