Raport C Lab 2

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

Sunteți pe pagina 1din 4

Universitatea Tehnic a Moldovei

FCIM
Catedra Calculatoare

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

Tema: Clase (constructori, destructori).Funcii i clase prietene.

Varianta 13

A efectuat: st. gr. C-151 Enachi Nicolae

A verificat: Lector superior Constantin Plotnic

0
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;
}
Riu(Riu &r) {
cout << "\n\n ############################################ ";
cout << "\n ## A functionat constructorul de copiere! ##\n";
cout << " ############################################ \n";
1
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();
return 0;
}

2
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.

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