Дістемелік кешен



бет14/112
Дата22.12.2021
өлшемі0,85 Mb.
#127596
түріПрограмма
1   ...   10   11   12   13   14   15   16   17   ...   112
Байланысты:
ооп лекция
қорытынды атт 11.03.21, қорытынды атт 11.03.21, эссеге керек
Конструктор түрлері

Бір класста бірнеше конструктор болуы мүмкін. Конструкторлардың үш түрі бар:

  • Қалыпты жағдайда конструкторлардың параметрлері болмайды. Егер класстың құрамында бірде-бір конструктор болмаса, онда компилятор автоматты түрде бір конструкторды құрады. Оның қызметі - класс объектісін құру кезде жады бөлу.

  • Аргументі бар конструктор объектті құру мезгілінде инициализациялауға мүмкіндік береді (әртүрлі функцияларды шақыру, динамикалық жады бөлу, айнымалыларға бастапқы мәндер меншіктеу т.с.с).

  • Көшіру конструкторы класс объектісінен мәліметтерді көшіру арқылы осы класстың басқа объектілерін құрады.

Қалыпты жағдайда берілген конструктор. Қалыпты жағдайда берілген конструктор дегеніміз – инициализациялауға арналған айқын мәндер болмаған кезде объект құруға пайдаланылатын конструктор. Басқаша айтқанда, конструктор мынадай түрдегі жариялауға қолданылады: stock:stock1; // қалыпты жағдайда берілген

// конструктор қолданып жатыр

Берілген оператордың сонда да жұмыс істеп тұрғандығының себебі – егер ешқандай конструкторлар болмаса, С++ те қалыпты жағдайда берілген конструкторлар автоматты түрде қолданылады. Мұндай конструтор болып қалыпты жағдайда берілген конструктор түрі табылады, ол ешқандай әрекет орындамайды. Stock класы үшін қалыпты жағдайда берілген конструкторда аргумент болмайтындағы жариялауда мәндер болмайтынын көрсетеді.

Компилятор қалыпты жағдайда берілген конструкторды бағдарламада ешқандай конструктор анықталмаған кезге дейін ғана қамтамасыз етеді. Нақтылы бір класқа нақтылы конструктор бекітілген соң, үндемей берілген конструкторды ұсыну міндеттемесін компилятор программистке жүктейді. Егер сіз қалыпты жағдайда қолданылмайтын конструкторды пайдалансаңыз, өзіңіздің өзіндік конструктор ұсынысын, Stock Stock1; түріндегі хабарлама қате болып келеді. Мұндай әрекеттің себебі сізде инициализацияланбаған объектілерді құруды мүмкін еместей ететін қажеттілік туындауы мүмкін. Егер, бірақ, нақты инициализациясыз объектілер құру қажеттігі туындаса, қалыпты жағдайда жұмыс істейтін өзіндік конструкторды анықтаған дұрыс. Қалыпты жағдайда жұмыс істейтін өзіндік конструкторды анықтаған дұрыс. Қалыпты жағдайда жұмыс істейтін конструкторды түрлі әдістермен анықтауғы болады. Олардың бірі – қызмет етіп тұрған конструктордың барлық аргументтеріне қалыпты жағдайда берілген мәндерді меншіктеу. Екінші әдіс аргументсіз екінші конструкторды алуға болады, сондықтан сіз екеуін де құрып қоймағаныңызға көз жеткізіп алыңыз.

Практикада, әдетте, барлық элементтер белгілі, корректілі таңдалған мәндерден басталатына сенімді болу үшін объектілерді инициализациялау керек етеді. Осылайша, қалыпты жағдайда берілген конструктор барлық элементтер мәнінің түсініксіз инициализациясын жүзеге асырады.



Параметрлі констукторлар. Бұл кейде тиімді болады, бірақ көп жағдайда бір немесе бірнеше параметрлі конструкторлар қолданылады. Параметрлер конструкторда да әдістегі сияқты қолданылады. Келесі мысалда параметрлі конструкторлары бар MyClass класы көрсетілген:

using System;

class MyClass {

public int x;

public MyClass(int i) {

x=i;

}

}

class ParmConsDemo {

public static void Main() {

MyClass t1=new MyClass(10);

MyClass t2=new MyClass(88);

Console.WriteLine(t1.x+” ”+ t2.x);

}

}




  1. Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   ...   112




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

    Басты бет