Documente Academic
Documente Profesional
Documente Cultură
Obiect Date + Functii Obiect Date + Functii Obiect Proprietati + Metode
Obiect Date + Functii Obiect Date + Functii Obiect Proprietati + Metode
Definitia 1
Clasa, intr-un anumit limbaj de programare, reprezinta definirea unui tip de obiecte
abstracte sau concrete, adica descrierea proprietatilor, a datelor si a metodelor, a prelucrarilor,
posibile asupra datelor. Clasa este, de fapt, o notiune abstracta, care defineste un anumit tip de
obiecte, sau, altfel spus, o clasa reprezinta multimea posibila a mai multor obiecte de acelasi tip.
Definitia 2
Obiect, reprezinta o multime de date care descrie un anumit obiect concret sau abstract,
numite si proprietati, impreuna cu procedurile, functiile, de prelucrare a cestora, numite metode.
Crearea unui obiect presupune specificarea clasei din care face parte, astfel identificandu-
se proprietatile obiectului si modul in care acestea pot fi folosite si prelucrate
Observatie:
Crearea sau declararea unui obiect este similara cu crearea sau declararea unor variabile.
Declararea unei variabile se face, dupa cum se stie, prin specificarea identificatorului acesteia,
precedat de tipul variabilei iar declararea unui obiect presupune precizarea identificatorului
acestuia, precedat de clasa din care face parte, clasa care in mod implicit determina proprietatile si
metodele obiectului definit.
class [nume_clasa]
specificator_acces1;
date_si_functii1;
specificator_acces2;
date_si_functii2;
………………………..
specificator_accesn;
date_si_functiin;
unde:
Spre deosebire de o structura, ai carei membri sunt toti accesibili programului, o clasa
poate avea membri pe care programul ii poate accesa direct (public), utilizand operatorul punct
(.) si alti membri, denumiti privati (private), pe care programul nu-i poate accesa direct. Unica
accesare a datelor si metodelor private (private) se face numai prin intermediul metodelor
publice. Dupa cum se va vedea, o clasa poate deriva dintr-o clasa de baza, anterior definita,
concept cunoscut sub numele de mostenire. Un membru protejat (protected) are un statut
intermediar intre membri publici si privati. Pentru clasa de baza, obiectele acesteia pot accesa
membri protejati, ca si cum ar fi publici, iar obiectele claselor derivate nu pot accesa un membru
declarat protected in clasa de baza, decat prin intermediul unor functii de interfata declarate
publice.
Observatii:
Problema 17
#include<string.h>
#include<stdio.h>
class carte
public:
char nume[40];
char autor1[40];
char autor2[40];
int nrpag;
double pret;
void afiseaza_carte();
};
strcpy(nume,numecarte);
strcpy(autor1,numeautor1);
strcpy(autor2,numeautor2);
nrpag=*np;
pret=*p;
}
void carte::afiseaza_carte()
cout<<"\n nr pagini:"<<nrpag<<endl;
cout<<"\n pretul:"<<pret<<endl;
int i=0;
void main()
carte carteacitita;
char wnume[40],wautor1[40],wautor2[40];
int wnrpag;
double wpret;
char r='d';
while(r=='d')
gets(wnume);
gets(wautor1);
printf("\n al doilea autor:");
gets(wautor2);
cin>>wnrpag;
cout<<"\n pret:";
cin>>wpret;
carteacitita.citeste_carte(wnume,wautor1,wautor2,&wnrpag,&wpret);
carteacitita.afiseaza_carte();
cout<<"\n continuati?(d/n):";
cin>>r;
In urma executarii programului anterior s-au obtinut urmatoarele rezultate, care arata cum
se declara o clasa, un obiect al acestei clase si modul in care se apeleaza membrii acestei clase,
prin intermediul unei instante a acestei clase.
al doilea autor: --
nr. pagini:200
pret:30
nr pagini:200
pretul:30
continuati?(d/n):d
al doilea autor: --
nr. pagini:50
pret:25
continuati?(d/n):n
Problema 18
Daca, in programul de mai sus, textul definirii clasei carte impreuna cu textele functiilor
precizate in clasa, citeste_carte si afiseaza_carte se salveaza ca un fisier header in directorul
include, fie el carti.h, atunci programul de mai sus va arata astfel:
int i;
#include<iostream.h>
#include<string.h>
#include<carti.h>
void main()
carte carteacitita;
char wnume[40],wautor1[40],wautor2[40];
int wnrpag;
double wpret;
char r='d';
while(r=='d')
gets(wnume);
gets(wautor1);
gets(wautor2);
cin>>wnrpag;
cout<<"\n pret:";
cin>>wpret;
carteacitita.citeste_carte(wnume,wautor1,wautor2,&wnrpag,&wpret);
carteacitita.afiseaza_carte();
cout<<"\n continuati?(d/n):";
cin>>r;