Extras din curs
Clase în C++
#include<iostream.h> //pentru 'cout'
#define SIZE 10
class stiva //C// class defineste un nou tip (tipul stiva)
{ //O// Sectiunea particulara cu membrii sai
int stiv[SIZE]; //D// (variabilele membre)
int indice; //////____________________________
public: //C//
void init(); //L// Sectiunea publica cu membrii sai
void pune(int val); //A// (functiile membre)
int scoate(); //S//
}; //A//_____________________________
void stiva::init( ) //atentie la scrierea functiilor
{
indice = 0;
}
void stiva::pune(int val)
{
if (indice == SIZE)
cout<<"Stiva este plina!";
stiv[indice]=val;
indice++;
}
int stiva::scoate( )
{
if (indice==0)
cout<<"S-a ajuns la limita de jos!";
indice--;
return stiv[indice];
}
main( )
{
stiva stiva1; // se creaza un obiect(variabila) de tip stiva
stiva1.init( );
stiva1.pune(200);
stiva1.pune(45435);
cout<<stiva1.scoate( )<<"n";
cout<<stiva1.scoate( )<<"n";
cout<<stiva1.scoate( )<<"n";
cout<<stiva1.indice<<"n"; // error: nu se poate accesa un membru privat
return 0;
}
ATENTIE! Referirea unui membru al unei clase (dintr-o sectiune de cod care nu face parte din CODUL CLASEI respective) trebuie întotdeauna facuta în legatura cu un obiect al acelei clase. Adica:
nume_obiect . nume_membru
Ex.: stiva1.init( );
N.B. Elementele particulare ale unui obiect sunt accesibile doar functiilor care sunt membre ale acelui obiect.
Alt exemplu:
#include<iostream.h> //pentru ‘cout’
#include<stdio.h> //pentru ‘printf( )’
class CLS //se defineste un nou tip de date
{
int a, b; //sectiunea privata
public:
CLS(int z = 0) //constructorul
{
a = b = z;
}
void afisare(char *mesaj = "") //functie ‘inline’
{
printf("%s a si b = %d %dn", mesaj, a, b);
}
};
struct STRU
{
int a, b; //totul este public aici
STRU(int z = 0) //constructorul
{
a = b = z;
}
};
void main()
{
CLS obiect_cls(1); //se definesc
STRU obiect_stru(10); //obiectele
cout<<endl;
obiect_cls.afisare("'afisare()' publica din CLS are acces la 'a' si 'b' private din CLSn");
obiect_stru.a = 100; //a si b din STRU pot fi modificate ptr. ca sunt publice
cout<<"obiect_stru.a = "<<obiect_stru.a<<endl;
}
Functia membra a clasei
Pentru a avea acces la variabilele clasei CLS are atasata o functie de tip membru (member) în corpul clasei (adica inline) în portiunea publica a clasei, accesibila din oricare functie inclusiv main( ): void afisare(char *mesaj =” ”).
Restrictii care se aplica membrilor clasei:
- o variabila membru care nu este de tip static nu poate sa aiba o initializare;
- nici un membru nu poate fi un obiect al clasei care se declara, dar poate fi un pointer catre o clasa declarata;
- nici un membru nu poate fi declarat ca auto, extern sau register.
Retineti! În C++, o declarare a unei structuri defineste un tip de clasa.
Preview document
Conținut arhivă zip
- Curs C++ in Romana
- 01Clase _n C++.doc
- 02Functii supraincarcate.doc
- 03Supraincarcarea operatori.doc
- 04Mostenirea.doc
- 06Cuvinte cheie _n C++.doc
- 07Forma programelor C++.doc
- 13 Matrice, pointeri si ref.doc
- 14 Supraincarcarea functiil.doc
- 15 Mostenirea.doc
- 16 Functii virtuale si poli.doc
- 17 Bazele sitemului de I-O .doc
- 18 I - O cu fisiere in C++.doc
- 20 Sabloane.doc
- Campuri de biti.doc
- Clase locale.doc
- Controlul accesului.doc
- Copierea obiectelor de tip .doc
- error C2380.doc
- error C2533.doc
- Exception Handling.doc
- Free Store.doc
- Functii membre statice.doc
- Hierarchy Chart.doc
- Liste inlantuite in C++.doc
- Membri statici in clase.doc
- Membrii de tip static ai cl.doc
- Modules Defining Types.doc
- Mostenirea, clasele derivat.doc
- namespace.doc
- Namespaces and Exceptions.doc
- Operatorul de specificare a.doc
- Ordinea de executie a const.doc
- Pointer to Void.doc
- References.doc
- Returnarea obiectelor.doc
- Scope.doc
- Structures.doc
- The Structure of a Declarat.doc
- Transmiterea obiectelor cat.doc
- User-Defined Types.doc
- Vectori in C.doc