Documente Academic
Documente Profesional
Documente Cultură
RAPORT
A elaborat:
Chișinau 2017
Tema: Clase (constructori, destructori).Funcţii şi clase prietene.
- Constructor prestabilit,
- Constructor de copiere,
- Constructor cu parametri,
- Metodă de inițializare a datelor,
- Metodă de afișare a datelor,
- Metode de returnare și afișare separată a datelor(opțional).
Clasa va conține metode descrise atît în interior cît și în exteriorul ei. Cel puțin o metod va fi
declarată ca funcție prietenă. După posibilități să se utilizeze pointerul this și operatorul
rezoluție( ::).
Listing-ul programului:
/**
* 7. Film
*/
#include <iostream>
#include <cstring>
class Film
{
private:
string denumire;
int an_emitere;
int cost_filmare;
public:
Film(); // constructor prestabilit
Film(Film &obj); // constructor de copiere
Film(string den, int an, int cost); // constructor cu parametri
// Getters
string GetDenumire() { return denumire; }
int GetAn() { return an_emitere; }
int GetCost() { return cost_filmare; }
// Setters
void SetDenumire(string denumire);
void SetAn(int an_emitere);
void SetCost(int cost_filmare);
// Methods
void Init();
friend void Afisare(Film &film);
};
/**
* CONSTRUCTORS
*/
Film::Film()
{
cout << "Constructor prestabilit..." << endl;
}
Film::Film(Film &obj)
{
cout << "Constructor de copiere..." << endl;
denumire = obj.denumire;
an_emitere = obj.an_emitere;
cost_filmare = obj.cost_filmare;
}
/**
* SETTERS
*/
void Film::SetDenumire(string denumire)
{
this->denumire = denumire;
}
/**
* METHODS
*/
void Film::Init()
{
denumire = "Star Wars I: The Phantom Menace";
an_emitere = 1999;
cost_filmare = 5000000;
}
// MAIN()
int main()
{
// Scenariu 1:
Film film;
film.Init();
Afisare(film);
return 0;
}
Rezultatul programului:
int main()
{
// Scenariu 2:
Film film2(film);
Afisare(film2);
return 0;
}
Rezultatul programului:
int main()
{
// Scenariu 3:
Film film;
film.SetDenumire(“St setat”);
film.SetAn(1998);
film.SetCost(300000);
Film film2(film);
film2.GetDenumire();
film2.GetAn();
film2.GetCost();
return 0;
}
Rezultatul programului:
Concluzie
În urma executării acestei lucrări de laborator am însuşit utilizarea claselor în C++, la fel
utilizarea constructorilor prestabilit, cu parametri şi respectiv cel de copiere. În interiorul clasei
au fost declarate variabilele ca fiind private şi accesul lor se execută prin intermediul la Getters
şi Setters. Metodele de setare(Setters) setează valoare pentru variabilă, dar Getters returnează
valoarea. Aceste se efectuează pentru securitatea programului şi se numeşte Incapsulare.
La fel am folosit o metodă prietenă pentru afişarea datelor unui obiect.