Dástúriy injiniring tálim baǵdarı 1-kurs 3-gruppa studenti Boranbaeva Umidanıń




Download 0,68 Mb.
bet8/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

Dos klasslar
C++ tilinde tek ǵana dos funkciyalardı emes, al dos klasslardı da daǵaza qılıw múmkin. Dos klassqa onı dos dep daǵaza qılǵan klasstıń barlıq aǵzalarına múrajáát qılıwǵa tolıq ruxsat beredi. Dos klasstı daǵaza qılıw ushın klass daǵazasına dos klasstı friend gilt sózi menen kiritiw jeterili.
Mısalı:
Class Klass
{
//…
friend class Dos_klass;
};

Bul jerde Klass klassına dos Dos_klass klassı daǵaza qılınǵan.
Klass ózin basqa bir ekinshi klasstıń dostı dep daǵaza qıla almaydı. Onıń ushın ol ekinshi klassta dos dep daǵaza qılınǵan bolıwı kerek.
Mısalı:
#include
using namespace std;
class Klass1
{
friend class Klass2;
int x;
void IncX(){x++;}
public:
Klass1(){ x=0;}
Klass1(int _x){ x=_x;}
};
class Klass2
{
Klass1 klass1;
public:
void x_manis();
};
void Klass2::x_manis(){
cout< klass1.IncX();
cout< }
int main()
{
Klass2 klass2;
klass2.x_manis();
return 0;
}

Klasslar bir-birin dos dep daǵaza etiwi múmkin. Biraq bul hal jaqsı bahalanbaydı, ol klasslar shejiresi tereń oylamastan dúzilgenliginiń dálili esaplanadı. Soǵan qaramastan C++ tili buǵan imkan beredi. Óz-ara dos klasslar tómendegishe daǵaza qılınǵan bolıwı kerek:


class Klass2;
class Klass1{
friend class Klass2;
///…
};
class Klass2
{
friend class Klass1;
//…
};
Joqarıda keltirilgen programma bóleginde klasstıń tolıq emes daǵazası tek Klass1 ishinde Klass2 klassına kórsetkish bolǵanda ǵana zárúr boladı.
Dos klasslar ushın tómendegi qaǵıydalar ámel qıladı:
-doslıq óz-ara emes, yaǵnıy Klass1 klassı Klass2 klasstıń dostı ekenliginen Klass2 klassın Klass1 klass dostı ekenligi kelip shıqpaydı;
- doslıq miyraslıq boyınsha ótpeydi, eger Klass1 klassı Klass2 klassınıń dostı bolsa, Klass1 klassınıń áwladları Klass2 klass dosları bolmaydı;
-doslıq tayansh klass áwladlarına ótpeydi, eger Klass1 klassı Klass2 klassınıń dostı bolsa, Klass1 klassın Klass2 áwladlarına dos bola almaydı.



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




Download 0,68 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Dástúriy injiniring tálim baǵdarı 1-kurs 3-gruppa studenti Boranbaeva Umidanıń

Download 0,68 Mb.