programare orientatăpe obiecte 5 c++ func ii constructor i ... · lucrarea de laborator nr.5...

Post on 10-Sep-2019

23 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programare orientată peobiecte

# 5

Adrian Runceanuwww.runceanu.ro/adrian

2016

C++Funcții constructor și destructor

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Functii constructor si destructor

1. Funcţiile constructor sunt metode ale claselor ceînlesnesc iniţializarea membrilor de date ai claselor

2. Funcţiile constructor au acelaşi nume cu clasarespectivă, numele funcţieie constructor nu se precde, însă, cu cuvântul cheie void.

3. Funcţiile constructor nu întorc nici o valoare

09.11.2016 P.O.O. - limbajul C++ (laborator) 2

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Functii constructor si destructor

4. De fiecare dată când un program creează o variabilă de tipul uni clase, C++ apelează funcţia constructor, în cazul încare aceasta există

5. Rularea unui program implică alocarea de memorie înscopul stocării de informaţii ale diferitelor obiecte. La distrugerea unui obiect, C++ apelează o funcţie specialădestructor care poate elibera această memorie.

09.11.2016 P.O.O. - limbajul C++ (laborator) 3

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Functii constructor si destructor

6. Funcţiile destructor au acelaţi nume cu clasa respectivă, dar acest nume trebuie precedat de caracterul (~).

7. Funcţiile destructor nu întorc nici o valoare. Asemenifuncţiilor constructor, numele unei funcţii destructor nu sunt precedate de cuvântul cheie void.

09.11.2016 P.O.O. - limbajul C++ (laborator) 4

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Problema nr.2

Să se realizeze un program ce foloseşte o clasă Film cu următorii membrii:

Nume (titlu film)

actor principal

actor secundar

Se cere afişarea membrilor. Se vor utiliza funcţii constructor şi destructor.

09.11.2016 P.O.O. - limbajul C++ (laborator) 5

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Solutie:

#include<iostream.h>#include<stdio.h>using namespaces std;

class film {private:

char nume[35];char actp[35];char acts[35];

09.11.2016 P.O.O. - limbajul C++ (laborator) 6

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

public:film(){cout<<"\n S-a apelat constructorul clasei film";cout<<"\n Introduceti numele filmului: "; gets(nume);cout<<" Actorul principal: "; gets(actp);cout<<" Actorul secundar: "; gets(acts);}

09.11.2016 P.O.O. - limbajul C++ (laborator) 7

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

~film()

{

cout<<"\n Se trece prin destructorul clasei

film";

}

09.11.2016 P.O.O. - limbajul C++ (laborator) 8

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

void afisare_film()

{

cout<<"\n Nume film: "<<nume;

cout<<"\n Actor principal: "<<actp;

cout<<"\n Actor secundar: "<<acts<<endl;

}

};

09.11.2016 P.O.O. - limbajul C++ (laborator) 9

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

int main()

{

film f1, f2;

f1.afisare_film();

f2.afisare_film();

}

09.11.2016 P.O.O. - limbajul C++ (laborator) 10

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Executia programului este:

09.11.2016 P.O.O. - limbajul C++ (laborator) 11

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Probleme propuse spre rezolvare

3. Să se realizeze un program care utilizează o clasă Grupa ce conţine ca date numele, prenumele, vârsta, notele la 5 examene şi media acestora pentru 10 studenţi. Clasa va avea o funcţie constructor pentru iniţializarea numelui şi prenumelui iar notele se vor citi de la tastatură. Media notelor va fi de tip privat.

09.11.2016 P.O.O. - limbajul C++ (laborator) 12

copyright@www.adrian.runceanu.ro

Lucrarea de laborator nr.5

Probleme propuse spre rezolvare

4. Să se realizeze un program care conţine două clase: 1. o clasă ce va conţine un tip de maşină, culoarea

acesteia şi preţul 2. şi o clasă care conţine numele, prenumele şi vârsta

unui şofer. Obiectele celei de-a doua clase vor apela obiectele primei clase pentru a specifica maşina fiecărui şofer. Se vor utiliza funcţii constructor şi destructor.

09.11.2016 P.O.O. - limbajul C++ (laborator) 13

copyright@www.adrian.runceanu.ro

Întrebări?

09.11.2016 P.O.O. - limbajul C++ (laborator) 14

top related