Sunteți pe pagina 1din 5

# Universitatea Tehnic a Moldovei

FCIM
Catedra Calculatoare

RAPORT
la lucrarea de laborator nr. 2
la programarea in limbajul C++

Varianta 13

A efectuat:

A verificat:

## Lector superior Constantin Plotnic

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

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

## 13. Ru continent, lungimea, debitul de ap.

Codul Programului:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
class Riu {
char *cnt = new char, *nume = new char;
float lng, dbt;
public:
Riu() {
cout << "
############################################# ";
cout << "\n ## A functionat constructorul prestabilit! ##\n";
cout << "
############################################# \n";
};
Riu(char *cnt, char *nume, float lng, float dbt) {
cout << "\n\n
############################################## ";
cout << "\n ## A functionat constructorul cu parametri! ##\n";
cout << "
##############################################
\n";
this->nume = nume;
this->cnt = cnt;
this->lng = lng;
this->dbt = dbt;
}
1

Riu(Riu &r) {
cout << "\n\n
############################################ ";
cout << "\n ## A functionat constructorul de copiere! ##\n";
cout << "
############################################ \n";
nume =r.nume;
cnt = r.cnt;
lng = r.lng;
dbt = r.dbt;
}
~Riu() {}
void InitData();
friend void ShowData(Riu&);
};
void Riu::InitData() {
cnt = new char;
nume = new char;
cout << "\n !!! Initializare primului obiect:";
cout << "\n -Introduceti numele riului:";
cin >> nume;
cout << " -Introduceti denumirea continentului:";
cin >> cnt;
cout << " -Introduceti lungimea riului:";
cin >> lng;
cout << " -Introduceti debitul anual al riului:";
cin >> dbt;
}
void ShowData(Riu &riu) {
cout << "\n\t\t\t" << riu.nume;
cout << "\n\t\t->Continentul: " << riu.cnt;
cout << "\n\t\t->Lungimea: " << riu.lng << " Km";
cout << "\n\t\t->Debitul: " << riu.dbt << " m3/s";
}
int main(){
Riu riu1;
riu1.InitData();
ShowData(riu1);
Riu riu2("Africa","Nil", 6853, 2830);
ShowData(riu2);
Riu riu3(riu2);
ShowData(riu3);
riu1.~Riu();
riu2.~Riu();
riu3.~Riu();
_getch();
2

return 0;
}

Rezultatele Testrii:

Concluzia:
n urma efecturii lucrrii de laborator la tema : Clase (constructori, destructori).Funcii i clase
prietene., am nvat folosirea celor 3 tipuri de constructor(prestabilit, cu parametri, de copiere), a funciilor
prietene precum i a destructorului. Tot n lucrarea respectiv am utilizat pointerul this care arat la adresa
obiectului n clas dar i operatorul rezoluie (::) folosit pentru a indica apartenena unei funcii la o clas.