Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
- Functiile membre ale unei clase pot fi definite <strong>în</strong> cadrul definitiei clasei sau <strong>în</strong> afara<br />
clasei, dar atunci trebuie declarate <strong>în</strong> clasã.<br />
- Nu toti membri unei clase sunt accesibili din afara clasei; nivelul de accesibilitate<br />
este declarat prin cuvintele cheie "public", "private" si "protected", folosite ca etichete<br />
pentru secvente de declaratii care au toate acest atribut. De obicei variabilele clasei<br />
sunt "private" sau "protected", iar functiile (metodele) sunt marcate cu "public".<br />
Multimea metodelor publice constituie interfata clasei cu exteriorul, sau interfata<br />
expusã de clasa respectivã cãtre utilizatorii potentiali (functii sau metode externe).<br />
Exemplu de definire a unei clase:<br />
class StrTok {<br />
private: // poate lipsi, este implicit<br />
char * str; // sirul analizat<br />
char * token; // adr cuv urmator<br />
char * sep; // sirul caracterelor separatori de cuvinte<br />
public:<br />
StrTok (char * str, char * delim="\t \n\r") { // constructor<br />
this->str= strdup(str);<br />
sep=delim;<br />
token=strtok(this->str,sep);<br />
}<br />
char * next () { // o metoda<br />
if (token == NULL)<br />
return NULL;<br />
char* aux= token;<br />
token=strtok(0,sep);<br />
return aux;<br />
}<br />
int hasNext () { // alta metoda<br />
return token !=NULL;<br />
}<br />
};<br />
In C++ metodele pot fi definite si <strong>în</strong> afara clasei, iar metodele mai lungi sau care<br />
contin cicluri ar trebui definite <strong>în</strong> afara clasei. In plus, definitia unei clase poate fi<br />
introdusã <strong>în</strong>tr-un fisier antet separat (.H), inclus <strong>în</strong> definitia unor clase derivate si<br />
aplicatiilor care folosesc obiecte de acest tip clasa. Exemplu:<br />
// vectori de intregi (fisier "IntArray.h")<br />
class IntArray {<br />
protected: // pentru a permite def. de clase derivate<br />
int * vec; // adresa vector<br />
int d,dmax,inc; // dimens. efectiva, maxima si increment<br />
public:<br />
IntArray (int max=10, int incr=10) ; // constructor<br />
~IntArray(); // destructor<br />
void add(int); // adaugare intreg la vector<br />
int size(); // dimensiune efectiva vector