Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Membri statici (Static)

c


Membri statici (Static

Fiecare obiect dintr-o clasa detine toate datele membru (atributele) acesteia. Exista insa posibilitatea ca toate instantele unei clase sa detina anumite atribute comune tuturor obiectelor clasei respective. Acesti membri (date, functii) statici au acelasi regim de protectie ca si ceilalti membrii.



Atribute (Date membru) Statice

Datele membru statice, care urmeaza sa fie utilizate de catre toate obiectele clasei, se definesc prin specificatorul static astfel:

class Nume_clasa

Datele membru statice se declara se initializeaza explicit in afara clasei:

Tip_data_membru Nume_clasa Data_membru Valaore

Referirea (utilizarea) datelor membru statice se poate face astfel:

a)       Nume_clasa Data_membru Referire naturala (globala) la clasa

b)       Obiect Data_membru . Referire particulara la un obiect

c)       Pointer_Obiect >Data_membru . Referire particulara prin pointer

In urmatorul exemplu, se numara cate Puncte sunt utlizate la un moment dat in program, utilizand ca data comuna pentru toate punctele (intreaga clasa) Nr_Ob

Membru Static

# include <conio.h>

# include <iostream.h>

class Punct

Punct (float x,float y)

Punct (Punct& P)

~Punct ()   

static int Nr_Ob;

};

int Punct::Nr_Ob=0; se initializeaza

void main (void)

cout << 'i' <<i<< ':'<< Punct::Nr_Ob <<endl; }

cout << 'Final' << Punct::Nr_Ob << endl; getche();

In exemplul urmator, sunt utilizati membri statici a,b,c,d pentru a memora domeniul minim care contine toate punctele curbei (definite parametric) care se deseneaza:

Membri Statici

# include <math.h> # include <conio.h> # include <graphics.h>

# define Cale 'c:BorlandCBgi'

class Grafic

~Grafic( ) };

int u (float);

int v (float);

class Punct

void Atrib (float x,float y)

Punct (Punct& P)

void Muta ()

void Trag ()

~Punct ()

static float a,b, c,d; // Fereastra Reala

};

float Punct::a, Punct::d, Punct::b, Punct::c; // Fereastra Reala

int u1=110, v1=20, u2=500, v2=430; // Fereastra Ecran

int u (float x)

int v (float y)

float x (float t) // x(t)

float y (float t) // y(t)

void main (void)

P[0].Muta(); setcolor(WHITE);

for (i=1; i<=n; i++) P[i].Trag();

Metode (Functii membru) Statice   

Metodele (Functiile membru) statice, actioneaza doar asupra atributelor statice (ale claselor), deci nu pot actiona asupra atributelor obiectului curent (deoarece nu li se transmite poinetrul this). De asemenea ele pot apela doar metodele statice. Pot insa actiona asupra atributelor unui anumit obiect prin operatorii sau > Metodele statice se definesc prin specificatorul static astfel:

class Nume_clasa   

Referirea (utilizarea) metodelor statice se face astfel:

a)       Nume_clasa Functie_membru Lista_par_actuali Referire naturala la clasa

b)       Obiect Functie_membru Lista_par_actuali Referire la un obiect

c)       Pointer_Obiect > Functie_membru Lista_par_actuali Referire prin pointer

In urmatorul exemplu, se determina fereastra reala (definita prin cele doua puncte diagonal opuse St_Sus, Dr_Jos) utilizand functiile statice MinX, MaxX, MinY, MaxY pentru a determina domeniul minimal care include punctele din grafic.

Functii Statice

# include <math.h> # include <conio.h> # include <graphics.h>

# define Cale 'c:BorlandCBgi'

class Grafic

~Grafic( ) };

int u (float); int v (float);

class Punct

void Atrib (float x,float y

Punct (Punct& P)

void Muta ()

void Trag ()

~Punct ()

static Punct St_Sus, Dr_Jos; // Fereastra Reala

static float MinX() // Metoda Statica

static float MaxX() // Metoda Statica

static float MinY() // Metoda Statica

static float MaxY() // Metoda Statica

};

Punct Punct::St_Sus, Punct::Dr_Jos; // Fereastra Reala

int u1=110, v1=20, u2=500, v2=430; // Fereastra Ecran

int u (float x)

int v (float y)

float x (float t) // x(t)

float y (float t) // y(t)

void main (void)

P[0].Muta(); setcolor(WHITE); for (i=1; i<=n; i++) P[i].Trag();



Document Info


Accesari: 3512
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )