Кілттік сөздер: конструктор; деструктор; көшіру конструкторы; аргументі бар конструктор; қалыпты жағдайдағы конструктор.
Жоспар:
Конструкторлар
Конструктор түрлері
Деструкторлар
Конструкторлар
Конструкторлар класс айнымалыларын инициализациялауға және жадыдан орын бөлуге арналған айрықша функция болып табылады.
Конструктор бірінші кезекте кластың айнымалыларын инициализациялау және жадыны сақтауға арналған кластың ерекше түрдегі функция- мүшесін құрайды. Конструкторлар аты ол тиесілі кластың атымен сәйкес келеді. Конструкторлар аргументті қабылдап және қайта жүктеуі мүмкін. Класс объектісін құру кезінде қажетті конструктор автоматты түрде шақырылады. Егер класты сипаттау кезінде конструктор берілмесе, онда компилятор класс үшін қалыпты конструкторды генеризациялайды.
Конструктор көмегімен айнымалы – мүшелерді инициализациялау. Конструктoрды негізгі практикалық қолдану , кластың жабық айнымалы – мүшелерін инициализациялаудан тұрады. Бұдан басқа конструкторда айнымалымен бірге берілген мәнді қалыпты жағдайда меншіктеп алуға болады, мысалы: Бұл жерде айта кететін жайт, айнымалы – мүшелер қарапайым айнымалыларға қарағанда меншіктеп алу операторының көмегімен тікелей инициализациялауы мүмкін емес. Міне, сондықтан барлық осыған ұқсас опрецияларды конструкторға салуға тура келеді.
Конструкторды қолдану. С++ деконструкторды қолданумен объектіні инициализациялаудың 2 әдісі қарастырылған. Олардың біріншісі – конструкторды айқын шақыру:
stock food=stock(“World Cabbadge”, 250,1.25);
Бұл команданың көмегімен food объектісінің, company элементіне ... rld cabbade жолы shares элементіне - 250 мәні, және т.с.с. меншіктеледі.
Екінші әдіс конструкторды шақырудың айқын емес түрін қарастырады:
stock garment(“Furry Mason”; 50, 2.5);
С++ те жадыны динамикалық бөлу үшін new спецификаторын қолдану кезінде де, осы кластың объектісі құрылғанда әркез класс конструкторы пайдаланылады. New спецификаторы бар конструктор келесі түрде қолданылады:
stock *pstock=new stock(“Elektroshock Games”, 18, 19.0);
Бұл оператор Stock объектісі құрады, аргументтер арқылы берілген оның мәндерін инициализациялайды, pstock сілтегішіне объект адресін меншіктейді. Бұл жағдайда объектіде ат жоқ, бірақ объектілерін жұмыс істеуде сілтегішті қолдануға болады. Конструкторды қолдану кластың өзге әдістерінен ерекшеленеді. Сонда да, конструкторды шақыру үшін объектіні қолдануға болмайды, себебі конструктор нақтылы объектіні құрастыру бойынша жұмысын бітірмейінше, мұндай объект болмайды. Конструктор объектімен шақырылуы мүмкін емес, конструктор объектіні жасауға қолданылады.
Достарыңызбен бөлісу: |