You are on page 1of 5

Lucrarea de laborator nr.

12
Tema: Clase

1. Scopul lucrării:
1.1 Obținerea deprinderii practice de elaborare și depanare a programelor cu
un grad mai înalt de complicitate
1.2 Studierea și utilizarea instrucțiunilor de bază ale limbajului pentru
elaborarea claselor

2. Considerații teoretice:
Clasa- metoda logica de reprezentare a datelor si functiilor unei aceleasi
familii.
O clasa este declarata folosind cuvintul-cheie class, care are o functionalitate
similara cu cuvintul-cheie struct. Diferenta fundamentala este ca o clasa poate
contine in membrii sai si functii. Definitia unei clase presupune:
1. Declararea clasei, care consta in specificarea datelor si prototipurilor
functiilor componente
2. Implementarea clasei, ce consta in definitia functiilor componente, care
indica comportamentul tipului de date , reprezentat de clasa respectiva
Sintaxa:
Class nume_clasa
{ private: // specificator privat
// date, functii private
public: // specificator public
// date, functii publice
protected: // specificator de acces protejat
// date, functii protejat
} variabile_de_tip_clasa;
Unde: nume_clasa: numele clasei declarat
variabile_de_tip_clasa: unul sau mai multi identificatori de obiecte

Corpul declaratiei poate contine niste etichete speciale de permisiune (private,


public, protected), care fac referinta la permisiunea pe care membrii o dobindesc.

UTM 525.3 122 12


Mod Coala Nr. document. Semnat. Data
Elaborat Curnic Alex. Litera Coala Coli
Verificat V. Derevlenco 1 6
Clase
UTM.FRT.TLC-122
Protectia membrelor intr-o clasa este indicata cu ajutorul unor sprecificatori de
acces (modificatori de protectie), care se observa prin amplasarea a 2 puncte dupa
cuvint
Cuvintul-cheie private indica ca membrii clasei sunt accesibili numai din cadrul
altor membre ale aceleiasi clase sau altor clase –prietene
Protected – indica ca membrii clasei sint accesibili din cadrul membrelor ale
aceleiashi clase sau clasei-pritene si totodata din membrii claselor derivate
Public - indica ca membrii clasei sunt accesibili de oriunde clasa este vizibila
Daca prototipurile functiilor membru se afla in declaratia clasei resprective, atunci
definitiile lor sunt date in exteriorul clasei, folosind operatorul de specificare de
domeniu, acesta ne indica ca domeniul functiei este acelasi cu domeniul clasei, din
care face parte.

Constructori-metode speciale, care folosesc la crearea si initializarea instantelor


unei classe
Constructorii au acelasi nume ca si clasa, sunt apelati de fiecare data cind ae loc
initializarea obiectelor. Constructorii asigura initializarea corecta a tuturor
variabilelor-membru si contituie o garantie ca initializarea unui obiect se face
macar o singura data
O clasa poate avea mai multi constructori, care difera dinte ei prin numarul si tipul
parametrilor acestora.
Proprietati:
1. Constructorul are acelasi nume ca si clasa
2. Nu intorc nuci-o valoare
3. Nu pot primi ca parametru valori
4. Pot primi ca parametru numai pointeri sau referinte ale aceleiasi clase
5. apelul constructorului se realizeaza la declararea unui obiect
6. Adresa constructorilor nu este accesibila utilizatorului
7. In cazul inc are o clasa nu are nici-un constructor declarat, compilatorul
automat genereaza un constructor implicit, fara nici-un parametru, cu lista de
proprietati vida

Destructorul are functionalitate opusa constructorului. Acesta este chemat


automat atunci cind un obiect este eliberat de memoria (alocat cu operatorul
new). Destrucorul are acelasi numa ca si clasa si este precedat de simbolul ~ .
totodata, la fel ca si in cazul constructorului, destructorul nu returneaza nici o
valoare.

Coala
CPAE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
3. Listingul programului:

#include<conio.h>
#include<iostream.h>
#include<math.h>
#define n 3.14
class cub
{float a;
public:
int cit();
int verif()
{if(a<0)
{return 0;}
else return 1;}
float aria();
float volum ();
void afis(); };
int cub::cit(){
cout<<"Introduceti muchia cubului :\n";
cin >> a;
return 1;}
float cub ::aria(){
float r;
if(verif ())
{r=6*pow(a,2);
return r;}
else return 0;}
float cub::volum(){
float v;
if(verif())
{v=pow(a,3);
return v;}
else return v; }
void cub::afis ()

Coala
CPAE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
{if (verif())
{cout<<"\n se formeaza un cub:\n";
cout<<"\n aria="<<aria()<<"\n";
cout <<"\n volum ="<<volum()<<"\n";}
else cout<<"\n Nu se formeaza cub!!!";}
void main ()
{cub t;
clrscr();
t.cit();
t.afis();
getch();}

4. Rezultatul programului:

Coala
CPAE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3
5. Concluzia:
Clase pemit introducerea în program a anumitor condiții, ce folosesc la
rezolvarea exercițiilor matematice. Această metodă este comodă pentru rezolvarea
unor expresii cu intervale.
Un plus al acestei instrucțiuni constă în faptul, că există o sumedenie de
variante de reprezentare a acestei instrucțiuni. De exemplu: un șir alcătuit doar din
comenzi if, succesiunea if else, precum și structura în trepte if else if. Toate
aceastea permit flexibilitatea în alcătuirea unui program.
Spre deosebire de programe liniare cele ramificate permit interpretarea unor
condiții mult mai complexe și variate. Pe lîngă toate acestea, ultimele pot avea
durata de execuție mult mai mare decît cele liniare, cîteodată chiar pînă la nesfîrșit.
Însă în alcătuirea programului trebuie respectate anumite cerințe, pentru a nu
avea eventuale incurcături. Programul trebuie scris cu mare atenție.
Comparînd sintaxa instrucțiunii if in c/c++ și în pascal iarăși, o vedem mult
mai simplificată și mai clară în c. Se omit așa termeni ca then, anumite atribuiri
inutile etc., totul declarîndu-se de la inceput.

Coala
CPAE 525.1 081 01 ME
Mod Coala Nr. document Semnat. Data 3

You might also like