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


Obyektlərdən istifadə etməklə funksiyaların qiymətinin qaytarılması



Yüklə 1,02 Mb.
səhifə57/74
tarix04.01.2023
ölçüsü1,02 Mb.
#121980
1   ...   53   54   55   56   57   58   59   60   ...   74
Alqoritmik dillər(C kitab) (10)

Obyektlərdən istifadə etməklə funksiyaların qiymətinin qaytarılması
Obyekt funksiya daxilinə ötürülə bildiyi kimi həm də funksiya daxilində alınan qiyməti qaytara bilir. Bu halda funksiya elə elan olunmalıdır ki, onun qaytardığı qiymət sinif tipinə malik olsun. Obyekt qiyməti return vasitəsi ilə qaytarır. Funksiyanın qaytardığı qiymət haqqında bir vacib qeydiyyatı nəzərə almaq lazımdır: əgər funksiya obyekt qaytararsa onda qaytarılan qiyməti saxlamaq üçün müvəqqəti obyekt yaranır. Qiymət qaytarıldıqdan sonra müvəqqəti obyekt ləğv olunur. Bu halda diqqətli olmaq lazımdır. Əgər obyektdə destruktor varsa onda müvəqqəti obyektin ləğv olunması kənar effektlərə səbəb ola bilər. Belə ki, bu obyektlərdə destruktor varsa qaytarılan obyekt görünmə oblastından kənara çıxa bilər.
Qaytarılan qiymət olaraq obyektdən istifadə olunmasına aid aşağıdaki misala baxaq:
//funksiyadan obyektin qaytarılması
#include
#include
using namespace std;
class samp{
char s[80];
public:
void show( ){cout<
void set(char*str){strcpy(s,str);}
};
//samp tipli obyekt qaytarılır
samp input( )
{char s[80];
samp str;
cout<<”sətri daxil edin:”;
cin>>s;
str.set(s);
return str;
}
int main( )
{
samp ob;
//ob-obyektin qaytardığı qiymətin mənimsədilməsi
ob=input( );
ob.show( )
return 0;
}

Bu misalda input( ) funksiyası str lokal obyekti yaradır və sətri klaviaturadan oxuyur. Bu sətrin str.s-də surəti alınır və sonra funksiya str obyektini qaytarır. Main( ) funksiyasının daxilində input funksiyasına müraciət zamanı qaytarılan obyekt ob-obyektinə mənimsədilir.



6.46.Obyektlərdən ibarət massivinin yaradılması
Obyektlər də dəyişəndir. Ona görə də istənilən tip dəyişənlərin malik olduqları əəlamət və xassələrə obyektlər də malikdir və obyektləri massivlərə yığcamlaşdırmaq olar. Obyektlərin elan olunmasının sintaksisi adi dəyişənlərin elan olunmasının sintaksisinə oxşardır. Eyni zamanda obyektlərdən ibarət massivin elementlərinə müraciət adi dəyişənlərdən ibarət olan massivin elementlərinə müraciət kimidir.

Obyektlər massivinin ümumi şəkildə təsviri:


sinfin_adı_obyektin adı[indeksin ölçüsü];-bir ölçülü halda
sinfin_adı_obyektin adı[1-ci indeksin ölçüsü] [2-ci indeksin ölçüsü];
Aşağıdaki proqramda 4-elementdən ibarət obyektlər massivi təsvir edilmişdir.
//obyektlər massivinə misal
#include
using namespace std;
class samp{
int a;
public:
void set_a(int n) {a=n;}
int get_a( ){return a;}
};
int main( )
{
samp ob[4];
int i;
for (i=0; i<4; i++) ob[i].set_a(i);
for (i=0; i<4; i++) cout<
cout<<”\n”;
return 0;
}
4-elementdən ibarət obyektlər massivi samp tipinə malikdir. Bu obyektlərə 0,1,2 və 3 qiymətləri mənimsədilir. Massivin hər bir elementi üçün sinfin üzvü olan funksiyaya müraciət edilir. Massivin adı ob-dır və massiv indeksləşir. Sonra isə üzv funksiyaya müraciət edilir.
Əgər obyektdə konstruktor iştirak edirsə, onda obyektlər massivini inisiallaşdırmaq olar.

Məsələ, yuxarıdaki proqramı aşağıdaki kimi yazaraq inisiallaşdırma əməliyyatını yerinə yetirmək olar.


//Massivin inisiallaşdırılması
#include
using namespace std;
class samp{
int a;
public:
samp(int n){a=n;} //konstruktor
int get_a( ){return a;
};
int main ( )
{
samp ob[4]={-1,-2,-3,-4};
int i;
for (i=0; i<4; i++)cout<
cout<<”\n”;
return;
}

Bu proqram ekrana -1 -2 -3 -4 çıxarır. Bu qiymətlər obyektə konstruktor vasitəsi ilə verilir. Faktiki olaraq inisializasiyanın sintaksisi aşağıdaki yazılışın qısaldılmış variantıdır:


samp ob[4]={samp(-1), samp(-2), samp(-3), samp(-4)}
Oxşar qaydada çoxölçülü obyektlər massivi ilə işləmək olar. Aşağıdaki proqramda ikiölçülü obyektlər massivinin yaradılması və inisializasiya edilməsi göstərilmişdir.
#include
using namespace
class samp {
int a;
public:
samp (int n) {a=n;}
int get_a( )(return a)
};
int main( )
{
samp ob[4][2]={
1,2,
3,4,
5,6,
7,8
};
int i;
for i=0; i<4; i++{
cout<
cout<
}
cout<<”\n”;
return 0;
}
Bu proqram ekrana
1,2,
3,4,
5,6,
7,8
-ədədlərini çıxaracaq.


Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   53   54   55   56   57   58   59   60   ...   74




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin