Crearea și utilizarea obiectelor

Un obiect este o instanță a unei clase. După ce definim o clasă, putem crea mai multe obiecte bazate pe acea clasă, fiecare având propriile sale valori pentru atribute.


1. Definirea unei clase

O clasă este un șablon care definește structura și comportamentul obiectelor.

#include <iostream>
using namespace std;

// Definirea clasei
class Masina {
public:
string marca;
string model;
int an;

// Metodă pentru afișarea detaliilor despre mașină
void afiseazaDetalii() {
cout << "Marca: " << marca << ", Model: " << model << ", An: " << an << endl;
}
};

2. Crearea unui obiect

Un obiect este creat declarând o variabilă de tipul clasei:

int main() {
Masina masina1; // Creăm un obiect de tip Masina

// Inițializăm atributele obiectului
masina1.marca = "Dacia";
masina1.model = "Logan";
masina1.an = 2022;

// Apelăm metoda clasei
masina1.afiseazaDetalii();

return 0;
}

Rezultatul afișat:

Marca: Dacia, Model: Logan, An: 2022

3. Crearea mai multor obiecte

Putem crea mai multe obiecte ale aceleiași clase, fiecare având valori diferite.

int main() {
Masina masina1, masina2;

masina1.marca = "BMW";
masina1.model = "X5";
masina1.an = 2023;

masina2.marca = "Audi";
masina2.model = "A4";
masina2.an = 2021;

masina1.afiseazaDetalii();
masina2.afiseazaDetalii();

return 0;
}

Rezultatul:

Marca: BMW, Model: X5, An: 2023
Marca: Audi, Model: A4, An: 2021

4. Crearea și inițializarea obiectelor cu un constructor

Un constructor este o funcție specială a clasei care este apelată automat atunci când un obiect este creat.

class Masina {
public:
string marca;
string model;
int an;

// Constructor
Masina(string m, string mo, int a) {
marca = m;
model = mo;
an = a;
}

void afiseazaDetalii() {
cout << "Marca: " << marca << ", Model: " << model << ", An: " << an << endl;
}
};

int main() {
Masina masina1("Toyota", "Corolla", 2022);
Masina masina2("Ford", "Focus", 2020);

masina1.afiseazaDetalii();
masina2.afiseazaDetalii();

return 0;
}

Rezultatul:

Marca: Toyota, Model: Corolla, An: 2022
Marca: Ford, Model: Focus, An: 2020

Concluzie

  • Obiectele sunt instanțe ale claselor și conțin propriile date.
  • Putem crea mai multe obiecte dintr-o singură clasă.
  • Metodele clasei definesc comportamentul obiectelor.
  • Constructorii permit inițializarea automată a obiectelor la momentul creării.

Aceste concepte sunt esențiale în programarea orientată pe obiecte în C++.