Sari la conținut

[Programare Orientata pe Obiecte - C++] Introducere in Clase si Obiecte


Postări Recomandate

  • Moderators
Postat

Obiective : 

* Introducere Clase ; 

* Introducere Obiecte (Instante)  ;

* Implementare Clasa si Obiect in C++ .

 

** Clasele ** 

Clasele reprezinta un concept crucial in paradigma orientata pe obiecte definind atat caracteristicile cat si comportamentele unei entitate .  Spre exemplu , o clasa poate fi reprezentat de utilizator la care se descriu informatii precum varsta , nume , email , parola etc. Practic , reprezinta modelul pentru fiecare obiect instantiat in clasa respectiva . 

O clasa poate avea membrii de tip 

 --> Variabile (Simple , Pointeri,Tablouri de dimensiune etc.) ; 

 --> Structuri , Clase sau Enumeratii ("Imbracate") ;

 --> Metode (Functii) ce descriu comportamentele obiectelor ;

--> Constructori & Destructori (Pentru atribuire/alocare membrii cu valori si pentru eliminarea valorilor reziduale ) 

** De constructori si destructori vom discuta in subiectele ce urmeaza !! 

Exemplu de Implementare Clasa in C++

class Utilizator
{

	public:  // Recunoscut in afara Clasei 

	// Variabile Simple 

	int id; // Id Utilizator 
	char username[50];  // Nume Utilizator 
	char email[50]; // Email Utilizator 
	char password[50]; // Parola Utilizator 


	// Functii (Metode)

	const char* afisarenume()
	{
		return username;  // Afisam numele utilizatorului 
	}

	const char* afisareemail() // Afisam Email Utilizator
	{
		return email;
	}

	const int afisareid()  // Afisam Id utilizator
	{
		return id;
	}

	const char* afisareParola()  // Afisam Parola Utilizator 
	{
		return password;
	}

};

 

** Obiectele sau Instantele ** 

Instantele reprezinta exemplarele sau entitatile autonome facute pe baza clasei instantate . De exemplu , clasa utilizatori poate instantia una sau mai multi elevi . Practic , putem avea elevi cu nume sau adresa de mail diferite , cu altfel de comportamente etc. 

O clasa se poate instantia pe cale statica sau dinamica


int main()
{
	// Alocare Statica 

	Utilizator vasileEntitate;

	// Initializare Proprietati 

	vasileEntitate.id = 1;
	strcpy_s(vasileEntitate.username, "Vasile");
	strcpy_s(vasileEntitate.email, "vasile323@gmail.com");
	strcpy_s(vasileEntitate.password, "VasileParola");


	cout << vasileEntitate.afisareid() << endl;
	cout << vasileEntitate.afisarenume() << endl;
	cout << vasileEntitate.afisareemail() << endl;
	cout << vasileEntitate.afisareParola() << endl;


	/// Alocare Dinamica (Stocata in memorie) 

	Utilizator* ionEntitate = new Utilizator();
  
	// Initializare cu valori 

	ionEntitate->id = 2;
	strcpy_s(ionEntitate->username, "Ion");
	strcpy_s(ionEntitate->email, "ion323@gmail.com");
	strcpy_s(ionEntitate->password, "IonParola");
 
	// Afisare Valori pentru ion  

	cout << ionEntitate->afisareid() << endl;
	cout << ionEntitate->afisarenume() << endl;
	cout << ionEntitate->afisareemail() << endl;
	cout << ionEntitate->afisareParola() << endl;

	// Intotdeauna la Alocarea Dinamica Stergem valorile Reziduale 

	delete ionEntitate; // Stergem Valoare Reziduala 
	ionEntitate = nullptr; // Si o transformam in null pointer !! 

	return 0;
}

Rezultatul in consola :

Citat

1
Vasile
vasile323@gmail.com
VasileParola
2
Ion
ion323@gmail.com
IonParola

 

NOTA** : VOM DISCUTA IN TUTORIALELE CE URMEAZA MAI IN DETALIU DESPRE ALOCAREA DINAMICA A INSTANTELOR !! 

 

**MULTUMESC FRUMOS PENTRU ATENTIE , TUTORIAL CONSTRUIT INTEGRAL DE CATRE MINE PENTRU UTILIZATORI LEAGUECS !!  

**PENTRU NELAMURIRI , SUGESTII , RECLAMATII VA PUTETI ADRESA JOS (IN COMENTARII)  SAU PM !!! 

 

 

  • Fortzaaaa 1
Vizitator
Acest topic este acum închis pentru alte răspunsuri.
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Termeni de Utilizare & Politică Intimitate