Sunteți pe pagina 1din 5

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI


FACULTATEA CALCULATOARE, INFORMATICĂ ŞI
MICROELECTRONICĂ
CATEDRA INFORMATICĂ APLICATĂ

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

A elaborat: A verificat:
st. gr. IA-171, Conf.univ.dr.
Bodorin Adrian Plotnic Constantin

CHIŞINĂU 2018
Scopul lucrării: familiarizarea studenţilor cu noţiunea de clase, utilizarea
constructorilor, destructorilor, cu noțiunile de funcţii şi clase prietene.

Varianta 5: Continent – emisfera, suprafața ,numarul de locuitori.

Să se scrie un program pentru implimentarea unei clase care include un set de


date specifice cît și următoarele metode:

- 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( ::).

Codul-sursă:
#include<iostream>

#include<cstring>

#include<cstdlib>

using namespace std;

class Continent{

friend void afiseaza(Continent &c);//Functie de afisare prieten cu clasa Continent

friend void select(Continent &c);//Functie de afisare selectiva prieten cu clasa Continent

private:

char nume[20];

char emisfera[10];

float suprafata;
int nr_loc;

public:

Continent (){}//Constructor fara parametri

Continent (char *nume,char *emisfera,float suprafata,int nr_loc){//Constructor cu


parametri

strcpy(this -> nume,nume);

strcpy(this -> emisfera,emisfera);

this -> suprafata = suprafata;

this -> nr_loc = nr_loc;

Continent (Continent &C){//Constructor de copiere

strcpy(this -> nume,C.nume);

strcpy(this -> emisfera,C.emisfera);

this -> suprafata = C.suprafata;

this -> nr_loc = C.nr_loc;

~Continent(){}//Destructor

void introdu(){//Metoda pentru introducerea datelor de catre utilizator

cout<<"\nIntrodu numele continentului: ";

cin>>nume;

cout<<"Introdu emisfera: ";

cin>>emisfera;

cout<<"Introdu suprafata: ";

cin>>suprafata;

cout<<"Introdu nr de locuitori: ";

cin>>nr_loc;

void afis(){//Metoda de afisare


cout<<"\nContinentul: "<<this->nume<<"\nEmisfera: "<<this->emisfera<<"\nSuprafata :
"<<this->suprafata<<"\nNr de locuitori: "<<this->nr_loc<<"\n"<<endl;

};

void afiseaza(Continent &c){//Functie de afisare prietene cu clasa Continent

cout<<"\nContinentul: "<<c.nume<<"\nEmisfera "<<c.emisfera<<"\nSuprafata:


"<<c.suprafata<<"\nNr de locuitori: "<<c.nr_loc<<"\n"<<endl;

void select(Continent &c){//Functie de afisare selectiva prieten cu clasa Continen

cout<<"\nContinentul: "<<c.nume<<"\nEmisfera: "<<c.emisfera<<" are "<<" suprafata de


"<<c.suprafata<<"\n"<<endl;

int main(){

Continent C;

Continent C1("Australia","Sudica",876.561,345435);

Continent C2;

C2.introdu();

Continent C3(C2);

afiseaza(C3);

select(C2);

return 0;

}
Concluzie:
În urma efectuării acestei lucrări de laborator, am făcut cunoștință
cu noțiunea de clase, utilizarea constructorilor, destructorilor, cu
noțiunile de funcţii şi clase prietene. Am elaborat un program care
implementează o clasă (Camion) ce include un set de date specifice
(nume_firma, tonaj, distanta) cât și metode de inițializare și de afișare a
datelor, care sunt descrise atât în interiorul clasei, cât și în exteriorul ei,
iar o metodă este declarată ca funcție prietenă. De asemenea am utilizat
constructorul prestabilit, constructorul de copiere, constructorul cu
parametri și destructorul. Clasa implementată conține metode descrise
atât în interiorul ei cât și în exterior. De asemenea am utilizat pointerul
this în cadrul funcțiilor membre și operatorul rezoluție(::).

S-ar putea să vă placă și