O clasa este un tip care poate contine ca membri variabile si functii care sa manipuleze aceste variabile. Functiile membre ale unei clase se mai numesc metode, iar variabilele membre se mai numesc atribute, sau simplu, date. Exista si functii numite ,,prietene", care nu sunt membri ai clasei, dar au acces la membrii clasei (acestea pot fi membre ale altei clase sau nemembre in nici o clasa). De asemenea, exista clase prietene.
O clasa poate avea o parte privata, care poate fi accesata doar de membrii si de prietenii clasei, o parte publica, care poate fi accesata de oriunde, si o parte protejata. Astfel, clasa realizeaza o incapsulare si ascunderea informatiei. Folosind clase, se separa detaliile de implementare de interfata.
O variabila de tipul unei clase se numeste obiect sau instantiere sau instanta a clasei respective. Un obiect incapsuleaza atat o stare, cit si o functionalitate.
Sintaxele pentru declararea unei clase si a unor obiecte de tipul unei clase sunt urmatoarele:
class [nume [: clase_de_baza ]]
{
membri
} [obiecte];
[ class ] nume obiecte;
Cuvantul rezervat class declara un tip clasa sau se foloseste pentru a defini obiecte de tip clasa. Elementele din definitia unei clase sunt:
- nume este numele clasei. El devine cuvant rezervat in interiorul clasei.
- clase_de_baza specifica clasele din care este derivata clasa. Numele fiecarei clase de baza poate fi precedat de un specificator de acces (public, private, protected) si de cuvantul-cheie virtual (vezi mostenirea - capitolul 1.3).
- membri declara membri sau prieteni ai clasei. Membrii pot fi: date, functii, clase incuibate, enumerari, campuri de biti, tipuri. Prietenii pot fi functii sau clase. Nu sunt permise initializari explicite de date. Clasa poate contine un pointer sau o referinta spre un obiect de tipul ei, dar nu poate contine obiecte statice de tipul ei.
- obiecte declara obiecte de tipul clasei.
//general
class CDreptunghi{ //declaratia clasei CDreptunghi
private: //private este implicit in C++
int latime, lungime; //membri privati
public:
void Set(int, int); //declaratie
void Set(CDreptunghi&); //declaratie
int Arie(void) const{ //metoda inline implicit
return latime * lungime;
}
friend void PatratMic(CDreptunghi&);
//functie prietena
}d; //d este o instanta a clasei CDreptunghi
inline void CDreptunghi::Set
(int latVal, int lungVal){ //definitie inline explicit
latime = latVal; lungime = lungVal;
//corect: membrii privati pot fi accesati de functiile membre
}
void CDreptunghi::Set(CDreptunghi &drept){ //definitie
latime = drept.latime;
lungime = drept.lungime;
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.