Klasslardi qollaw. Dostana ha’m virtual funkciyalar Qoyilg’an ma’sele


Klass obiekti. Funkciya ati ha’m obiektge_ko’rsetkish-funkciya ati



Yüklə 18,5 Kb.
səhifə2/4
tarix09.11.2023
ölçüsü18,5 Kb.
#131516
1   2   3   4
2-lekciya

Klass obiekti. Funkciya ati ha’m obiektge_ko’rsetkish-funkciya ati.
Dostana frunciyag’a mu’rajat spetsifikatorlari (public, protected, private) qollanilmaydi. Dostana funkciya prototipinin’ klass usilinda jaylastiriliwi parqi joq. Dostana funkciyalar mexanizmi klasslar arasindag’i baylanisti apiwayilastiriwg’a imkan beredi. Klaslarinan biriktirilgen komponentalarina murajat qiliw ushin kiritilgen funkciyalardi alip taslaw mumkin.
Misal iretinde- tarawindag’i noqat‖ ha’m – tarawindag’i siziq‖ klasslari ushin dostana funkciyani qarap shig’amiz. Tarawdi noqat klasina, (h,u) koordinatalarin aniqlawshi komponentalar kiredi. Tarawdag’i siziq klasinin’ komponentalari siziqtin’ uliwma ten’lemesi A*h+V*u+S=0 ten’lemesi koeficentleri A,V,S. To’mendegi dastu’rde eki klass ushin dostana bolg’an noqattan siziqqa araliqti esaplawg’a imkan beretug’in funkciya kiritilgen.
# include
class line 2 ;
class point 2
{ float x,y ;
public :
point 2 (float xn=0, float yn=0)
{ x=xn; y=yn; }
friend float uclou (point, line 2);
}
class line 2
float A,B,C;
public:
line 2 (float a, float b,float c)
{A=a; B=b; C=c;}
friend float uclou (point 2, line 2);
}
float uclou (point 2 p, line 2 1)
{return 1.A-P.x+1.B*P.y+1.c;)
void main (void)
{ point 2 P(16.0,0.12,12.3);
line 2 h (10.0,-42.3,24.0);
cout << ―\n Uklonenie tochik R ot pryamoy L: ―;
cout << uclon (P,L);
Dastu’r orinlaniwi na’tiyjesi
R noqatdan L siziqqa shekemgi araliq: -336.29009
Bir klass ekinshi klassg’a dostana boliwi mu’mkin. Bul jag’dayda klasstin’ ha’mme komponenta funkciyalari basqa klassg’a dostana boladi. Dostana klasstin’ basqa klass denesinen sirtinda tariyplengen boliwi lazim. Ma’selen:
Class X 2 { friend clarr X1;… };
Class X 1 {…
Void f1 (…);
Void f2 (…);

};
Bul misalda f1 ham f2 funkciyalar X2 klasina dostana boladi. Klasslar ortasindag’i dosliqqa missal retinde ―N o’lshewli kosmostag’i noqat ‖-Point N ha’m og’an dostana bolg’an ―Noqat radiusi vektori‖-olctorN klasin ko’rip shig’amiz. Klass ha’mme komponentalari – o’lshewi N point ha’m koordinatalar massivi X[Point] menshik, ha’m sonin’ ushin olarg’a dostana funkciya arqali mu’rajat qiliw mu’mkin.
Point N klasi konstruktori koordinatalari massivi berilgen parametrler qiymatlari menen initsializatsiya qiladi. Vector N klasi konstruktor –vektor‖ obiektin Point N klasinin’ eki obiekti boyinsha aniqlaydi. Point N klassi obiektleri vektorinin’ basi ha’m aqirin aniqlaydi. Bul vector koordinatalar basina keltiriledi. Konstruktordan basqa vector N klasina vector normasin esaplawshi funkciya kiritilgen. Vectar normasi noqatlarinin’ koordinatalari jayaindisi esaplanadi. Dastu’rde eki o’lshewli eki noqati boyinsha vector paya qiling’an ha’m keyin ha’r tu’rli o’lshewli eki noqattan vector payda qiliwg’a ha’reket qiling’an.
# include < iostream.h >
# include < stdlib.h >
class Point N
int N point;
double*x;
friend class vectorn N;
public:
Point N (int n, donble d=0. 0)
{ N point : : point N (int n, double d)
{ N point=n;
x=new double [ N point ];
for (int I=0; Ix [I]=d;
}
class vector N
double* x0;
int N vector;
public;
vector N (point N, point N);
double norm, ( );
}
vector N: : vector N (pointN beg, point.N end)
{ ij (beg. N point!=end. N point)
{ cerr << ―\n nukta ulchovida hato ―)
exit (1)
}
N vector=beg. N point;
Xv=nev double [N vector];
For ( int I=0; IXv [I]=end. x[I]-beg.DC [I]
}
double vector N: : norm ( )
{double dd=0.0
for (int I=0; Illf=xv[I]*xv[I];
return dd;
}
void main (void)
{ point N A (2,4,0);
point N B (2,2.0);
vectorn V (a,b)
count < c ―\n Vektor normasi : ―<< v. Norm ( );
point N X(3,2.0)
vectorn J (A,X);
}
Dastur natijasi:
Vektor normasi 8
Nuqta o‘lchovida hato!

Yüklə 18,5 Kb.

Dostları ilə paylaş:
1   2   3   4




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