-§. Konstruktor hám destruktorlar




Download 0,68 Mb.
bet6/10
Sana20.05.2024
Hajmi0,68 Mb.
#245612
1   2   3   4   5   6   7   8   9   10
Bog'liq
Kurs jumısı-Boranbaeva Umida

3-§. Konstruktor hám destruktorlar


Ádette klass obyektin jaratıwda onı inicializaciyalaw kerek. Bul maqsette C++ tilinde konstruktor dep atalıwshı arnawlı funkciya - aǵza anıqlanǵan. Klass konstruktorı har dayım klass obyekti jaratılıwı waqtında avtomat túrde shaqırıladı. Konstruktor atı ózi aǵza bolǵan klass atı menen ústpe - úst túsedi ham qaytarıwshı mániske iye bolmaydı. Mısalı:
#include
using namespace std;
class Klass
{
int var;
public:
Klass();// Konstruktor
void Ekranga_shigariw_var();
};
Klass::Klass()
{
cout<<"Konstruktor isledi!\n";
var=0;
}
void Klass::Ekranga_shigariw_var() { cout<int main()
{
Klass ob;
ob.Ekranga_shigariw_var();
//...
return 0;
}

Bul mısalda Klass konstruktorı ekranǵa xabar shıǵaradı ham jabıq var ózgeriwshini inicializaciya qıladı (baslanǵısh mánis beriledi). Sonı da aytıp ótiw kerek, programmist ayqın ráwishte klass konstruktorın shaqıratuǵın til kórsetpesin jazbawı kerek, barlıq zárúr jumıstı kompilyator ámelge asıradı. Joqarıda aytılǵanday konstruktor ol tiyisli bolǵan klass obyekti jaratılıp atırǵan waqıtta avtomat túrde shaqırıladı. Óz nawbetinde obyekt onı daǵazalawshı operator orınlanıwında jaratıladı. Sonıń ushında C++ tilinde ózgeriwshi daǵazası orınlanıwshı operator esaplanadı.
Global obyektler ushın konstruktor programma orınlanıwı baslanǵanda shaqırıladı.
Konstruktorǵa qarata keri ámel orınlaytuǵun funkciya - aǵzalarǵa destruktorlar delinedi. Bul funkciya – aǵza obyekt óshiriliwinde (joǵaltılıwında) avtomat túrde shaqırıladı. Ádette destruktor obyekt tárepinen iyelengen dinamikalıq yadtı bosatıw ushın xızmet qıladı. Onıń atı klass atı menen sáykes túsedi, tek aldına '~' belgisi qoyıladı.
Tómende destruktor daǵazalanǵan klassqa mısal keltirilgen.
#include
using namespace std;
class Klass
{
int var;
public:
Klass();// Konstruktor
~Klass();// destruktor
void Ekranga_shigariw_var();
};
Klass::Klass() { cout<<"Konstruktor isledi!\n"; var=0; }
Klass::~Klass() { cout<<"destruktor isledi!\n"; }
void Klass::Ekranga_shigariw_var() { cout<int main()
{
Klass ob;
ob.Ekranga_shigariw_var();
//...
return 0;
}

Destruktor obyekt óshiriliwinde shaqırıladı. Global obyektler programma tamamlanıwında óshiriledi. Lokal obyektler - olardıń kóriniw oblastınan shıǵıwda óshiriledi.
Sonı anıq etip aytıp ótiw kerek, konstruktor hám destruktorlarǵa kórsetkishler jaratıw múmkin emes.
Eger klass ózgeriwshilerin inicializaciya qılıw zárúr bolsa, parametrli konstruktor qollanıladı. Joqarıda keltirilgen mısalǵa ózgeris kiritemiz.
#include
using namespace std;
class Klass
{
int a,b;
public:
Klass(int x, int y);
~Klass();
void Ekranga_shigariw_var();
};
Klass::Klass(int x, int y) { cout<<"Konstruktor isledi!\n"; a=x; b=y; }
Klass::~Klass() { cout<<"Destruktor isledi!\n"; }
void Klass::Ekranga_shigariw_var() { cout<int main()
{
Klass ob(5,10);
ob.Ekranga_shigariw_var();
//...
return 0;
}

Download 0,68 Mb.
1   2   3   4   5   6   7   8   9   10




Download 0,68 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



-§. Konstruktor hám destruktorlar

Download 0,68 Mb.