Vi fəsil. C++ dilində proqramlaşdırma


Konstruktorlar və onların təyini



Yüklə 1,02 Mb.
səhifə52/74
tarix04.01.2023
ölçüsü1,02 Mb.
#121980
1   ...   48   49   50   51   52   53   54   55   ...   74
Alqoritmik dillər(C kitab) (10)

6.39.Konstruktorlar və onların təyini
Həcmi böyük olan proqramların tərtibində onların bəzi hissələrində inisiallaşdırma əməliyyatı tələb olunur. Inisiallaşdırma əməliyyatı obyektlərlə işlədikdə daha çox tələb olunur. Belə ki, hər bir yeni yaradılan obyekt üçün müəyyən növ inisiallaşdırma əməliyyatı tələb olunur. Bu məsələni həll etmək üçün C++ dilində sinfin təsvirində konstruktor adlanan funksiyadan istifadə edilir. Hər dəfə sinfin yeni obyekti yarananda sinfin konstruktoruna müraciət edilir. Beləliklə, konstruktor olduqda obyektin inisiallaşdırması avtomatik olaraq yerinə yetirilir. Konstruktor sinfin adı ilə eyni olan ada malik olur və qiymət qaytarmır. Aşağıdaki proqramda konstruktorla olan sinif nümayış etdirilmişdir:
#include
using namespace std;
class myclass{
int a;
public:
myclass( );//konstruktor
void show( );
};

myclass::myclass( )
{cout<<”konstruktorun məzmunu \n”:
a=10;
}
void myclass :: show( )
{cout<
}
int main( )
{myclass ob;
ob.show( );
return 0;
}
Bu sadə misalda a-dəyişəni myclass( )-konstruktoru vasitəsi ilə inisiallaşdırılır. ob-obyekti yaranan zaman konstruktora müraciət edilir. Obyekt elan olunan zaman isə obyekt yaradılır. Bu C++ dilinin xarakterik cəhətidir. C-dilindən fərqli olaraq C++ dilində dəyişənin təsviri ilə “əməliyyat qaydalı” müəyyən olunur. Belə ki, C++ dilində obyekt konstruktora malikdirsə, dəyişənin elan olunması konstruktorda müəyyən olunan əməliyyatların yerinə yetirilməsini təmin edir.
Lokal obyektlər üçün dəyişənin elan olunması yerinə yetirildikdə konstruktora müraciət edilir. Qlobal obyektlər üçün isə proqram yerinə yetirilməyə başladıqda konstruktora müraciət edilir.

6.40. Destruktorlar və onların təyini
Konstruktora əks olan əməliyyatı yerinə yetirən funksiya destruktor adlanır. Bu funksiya obyektləri ləğv edən zaman çağrılır. Adətən obyektlərlə işləyən zaman onların ləğv edilməyi anında müəyyən əməliyyatın yerinə yetirilməsi lazım gəlir. Məsələ, obyekti yaradan zaman onun üçün yaddaş sahəsi ayrılır və obyekti ləğv edən zaman bu yaddaş sahəsini azad etmək zəruriyyəti yaranır. Destruktorun adı sinfin adı ilə eyni olur və destruktorun adının əvvəlində ~ (tilda) işarəsi qoyulur. Destruktorun təyininə aid aşağıdaki misala baxaq:
#include
using namespace std;
class myclass{
int a;
public:
myclass( ); //konstruktor
~myclass( );//destruktor
void show( );
};
myclass :: myclass( )
{cout<<”konstruktorun məzmunu \n”;
a=10;
}

myclass :: ~myclass( )
{cout<<”silinməsi …\n”;
}
void myclass :: show ( )
{cout<
}
int main( )
{
myclass ob;
ob.show( );
return 0;
}
Obyekti ləğv edən zaman destruktora müraciət edilir. Lokal obyektlər onların görünmə oblastından kənara çıxdıqda ləğv olunur. Qlobal obyektlər isə proqram yekunlaşan zaman ləğv olunur.


Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   48   49   50   51   52   53   54   55   ...   74




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2025
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin