Sunteți pe pagina 1din 5

MINISTERUL EDUCAIEI, CULTURII I CERCETRII AL

REPUBLICII MOLDOVA
UNIVERSITATEA TEHNIC A MOLDOVEI
FACULTATEA CALCULATOARE, INFORMATIC I
MICROELECTRONIC
DEPARTAMENTUL INFORMATIC I INGINERIA
SISTEMELOR

RAPORT
pentru lucrarea de laborator nr.2
la disciplina: Programare Orientat pe Obiecte
cu tema: Clase (constructori, destructori).Funcii i clase
prietene.

A elaborat: A verificat:
st. gr. IA-162, Lector superior,
Codreanu Maria V.Oovschi

CHIINU 2017
Scopul lucrrii: familiarizarea studenilor cu noiunea de clase, utilizarea
constructorilor, destructorilor, cu noiunile de funcii i clase prietene.

Varianta: 4 Camion (numele de firm, tonajul, distana parcurs).

S se scrie un program pentru implimentarea unei clase care include un set de date
specifice ct i urmtoarele metode:

- Constructor prestabilit,
- Constructor de copiere,
- Constructor cu parametri,
- Metod de iniializare a datelor,
- Metod de afiare a datelor,
- Metode de returnare i afiare separat a datelor(opional).

Clasa va conine metode descrise att n interior ct i n exteriorul ei. Cel puin o
metod va fi declarat ca funcie prieten. Dup posibiliti s se utilizeze pointerul this
i operatorul rezoluie( ::).

Codul-surs:
#include <iostream>

#include <conio.h>

#include <cstring>

using namespace std;

class Camion{

public:

char nume_firma[20];

int tonaj;

float distanta;

Camion() {} //Constructor prestabilit

Camion(char *nf, int t, float d) //Constructor cu parametri

strcpy(this->nume_firma,nf);
tonaj=t;

distanta=d;

Camion(Camion &c) //constructor de copiere

strcpy(nume_firma,c.nume_firma);

tonaj=c.tonaj;

distanta=c.distanta;

~Camion() { } //destructor

friend void creaza(Camion &cam);

void afiseaza(void);

void aduna(Camion &c1, Camion &c2)

strcpy(nume_firma,c1.nume_firma);

tonaj=c1.tonaj+c2.tonaj;

distanta=c1.distanta+c2.distanta;

};

void creaza(Camion& cam)

cout<<"Nume firma: "; cin>>cam.nume_firma;

cout<<"Tonaj: "; cin>>cam.tonaj;

cout<<"Distanta pracursa: ";cin>>cam.distanta;

}
void Camion::afiseaza(void){

cout<<"\nNume firma: "<<this->nume_firma<<endl;

cout<<"Tonaj: "<<this->tonaj<<endl;

cout<<"Distanta pracursa: "<<this->distanta<<endl;

int main(){

Camion C2;

creaza(C2);

cout<<"\n Constructor cu parametri:";

C2.afiseaza();

cout<<"\n Constructor de copiere:";

Camion C3(C2);

C3.afiseaza();

C3.~Camion();

cout<<"\n Utilizare Constructor prestabilit:";

Camion C1;

C1.aduna(C2,C3);

C1.afiseaza();

C1.~Camion();

C2.~Camion();

}
Figura 1. Execuia programului

Concluzie:
n urma efecturii acestei lucrri de laborator, am fcut cunotin cu
noiunea de clase, utilizarea constructorilor, destructorilor, cu noiunile de
funcii i clase prietene. Am elaborat un program care implementeaz o clas
(Camion) ce include un set de date specifice (nume_firma, tonaj, distanta)
ct i metode de iniializare i de afiare a datelor, care sunt descrise att n
interiorul clasei, ct i n exteriorul ei, iar o metod este declarat ca funcie
prieten. De asemenea am utilizat constructorul prestabilit, constructorul de
copiere, constructorul cu parametri i destructorul. Clasa implementat
conine metode descrise att n interiorul ei ct i n exterior. De asemenea
am utilizat pointerul this n cadrul funciilor membre i operatorul
rezoluie(::).