Конструктори класе Ц ++

C Class Constructors



Конструктори су попут функција. Они се користе за иницијализацију вредности и објеката класе. Ови конструктори се покрећу када се креира објект класе. Конструктор директно не враћа никакву вредност. Да бисмо добили вредност конструктора, морамо да опишемо засебну функцију јер конструктор нема никакав повратни тип. Конструктор се разликује од једноставне функције на различите начине. Конструктор се ствара када се објект генерира. Дефинише се у јавном сегменту класе.

У овом чланку ћемо размотрити све ове врсте конструктора са примерима.







Пример 1

Ово је илустрација подразумеваног конструктора. Као што знамо да су конструктори подразумевано аутоматски креирани када креирамо објекат класе. То се назива имплицитно стварање. Конструктори су истог имена што је назив класе. Размотримо датотеку која има ц ++ код конструктора јер знамо да класа има две опције, приватну и јавну. Приватни део садржи променљиве података, док је јавни део за функције које преузима било који објекат. Дакле, конструктор је такође дефинисан у јавном делу.



Интегер()

{

Икс=педесет;

и=двадесет;

};

У овом конструктору вредности се додељују променљивим. Ако желимо да преузмемо вредности као излаз, морамо их одштампати у главном програму.







Након дефинисања конструктора, класа се затвара. Приликом уласка у главни програм штампаћемо вредности помоћу објекта. Објекат увек приступа конструкторима јер су то делови класе. Стварање објеката је тако једноставно. То се постиже увођењем назива класе. То је цео број у овом примеру. Вредност ће бити дохваћена методом тачке. односно а.к.

Можемо видети излаз изворног кода са терминала у Убунту -у. Приступ који се користи за добијање резултата је прилично једноставан. Прво се код саставља, а затим извршава. За процес компилације користимо Г ++ компајлер. Баш као и у случају Ц, користимо ГЦЦ.



$ Г++ -или филец филец.ц

./филец

-О се користи за спремање резултата у датотеку.

Пример 2

На овој илустрацији ћемо објаснити параметризоване конструкторе. За разлику од претходног примера, аргументе можемо пренети и конструкторима из главног програма. Када се објекат генерише, ове вредности се аутоматски прослеђују променљивим присутним у конструктору да приме вредност. Неке од употреба параметризираних конструктора су.

  • Користи се за иницијализацију различитих променљивих са различитим вредностима унутар конструктора када се иницијализује.
  • Користи се при преоптерећењу конструктора. То је дефинисано касније у чланку.

Погледајмо сада илустрацију коју смо описали да бисмо разрадили овај концепт. Класа има име интегер, па ће дефинитивно и име конструктора бити исто. У параметрима конструктора постоје две вредности целобројног типа. Они су иницијализовани да прихвате вредности које се шаљу из главног програма као позив функције.

Интегер( интИкс,инти)

{

ДО=Икс;

Б=и;

};

У претходном примеру, варијаблама унутар конструктора су дате вредности. Док су у овом конструктору променљиве додељене променљивим које имају вредност.

Ако желимо узети приказ, морамо дефинирати функцију која ће вратити вриједност јер није могуће приступити тој иницијализираној варијабли директно из конструктора.

интгетКс()

{

повратакдо;

};

Сада ћемо видети главни део програма. Овде када је објекат креиран, можете видети вредности у одељку параметара.

Интегер в(70,55); {имплицитно}

цео број в=цео број(10,петнаест); {изричит}

А да бисмо приказали резултат, позваћемо функције креиране унутар класе помоћу објекта. тј. в.гетк ().

Начин преузимања записа је исти као што је већ представљено.

Пример 3

Овај пример се бави копирањем конструктора класе. Копирани конструктор се користи за иницијализацију објекта са другим објектом сличне класе којој припада. Овај конструктор копира податке присутне у једном објекту у други. Параметри овог конструктора садрже адресу објекта класе. Размотримо дате примере, у којима смо увели две променљиве истих типова података тако да њима могу приступити било које функције унутар класе. Конструктор ће примити вредности кроз променљиву. Истовремено, копирани конструктор ће примити само објекат. И уз помоћ овог објекта, вредности ће бити дохваћене.

Зид(зид&обј)

{

Дужина=обј.дужине;

Висина=обј.висина;

}

Морамо израчунати површину, па је функција за овај прорачун овде дефинисана. Ово ће вратити вредност главној функцији када се позове. Сада ћемо посматрати главни програм кода

Позив функције копираног конструктора ће бити овакав.

Зидни зид 2=зид1;

Објекат позива копирани конструктор, а кроз њега се копирају подаци кроз први објекат. Надаље, позваћемо функцију за израчунавање површине кроз оба објекта.

Из излаза можете видјети да је резултат из оба конструктора исти. То значи да је објекат успешно копирао све податке.

Пример 4

Ово је илустрација преоптерећења конструктора. То се дешава када морамо да користимо више од једне функције унутар класе. Преоптерећење конструктора прати упутства параметризираних конструктора. Сви конструктори у класи имају слично име као класа. Али сваком од конструктора су додељени различити параметри. Сваки конструктор се позива према аргументу када креирамо објекат.

Размотримо дати пример у коме смо користили три конструктора. Један је без икаквог аргумента. Други је са једним аргументом, док је трећи са два аргумента. Ова илустрација је слична претходној. Док израчунавамо површину у засебној функцији описаној унутар класе.

// Конструктор са два аргумента

облик(интИкс,инти)

{

до=Икс;

б=и;

};

Сада, крећући се према главном програму, можемо видети да када покренемо објекат класе, конструктор без аргумента се подразумевано позива. Сада морамо позвати друге конструкторе са различитим објектима који имају различите аргументе.

Схапе с;

Облик с2(8);

Облик с3(4,2);

Функција помоћу које можемо приказати вредност позива се кроз исти креирани објекат.

Да бисмо видели излаз, користићемо исти метод командног терминала састављањем и извршавањем кода присутног у датотеци.

Из излаза можемо видети да је одговор исти за сваки конструктор.

Закључак

У овом водичу смо видели основе конструктора и њихове функционалности, укључујући како их преоптеретити. Конструктори се користе за иницијализацију променљивих са вредностима.