Sunteți pe pagina 1din 3

Ministerul Educaţiei, Culturii si Cercetarii al Republicii

Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatica si Microelectronica


Departamentul ISA

RAPORT
Lucrarea de laborator nr.4
la POO

A efectuat:
st. gr. AI-171 E.Cazacov

A verificat: M. Osovschi

Chişinău - 2018
Lucrarea de laborator nr.4
Tema: Moştenirea şi compoziţia

Scopul lucrării:
 studierea moştenirii, avantajele şi dezavantajele;
 studierea compoziţiei;
 studierea regulilor de definire a moştenirii şi compoziţiei;
 studierea formelor de moştenire;
 studierea iniţializatorilor;
 principiul de substituţie;
 moştenirea şi compoziţia – ce să alegem.

Sarcina pentru lucrările de laborator:


De creat clasa roata, care conţine rază. Determinaţi constructorii şi metodele de acces. Creaţi clasa
automobil, care conţine roţi şi un câmp care reprezintă firma producătoare. Creaţi o clasă derivată
autocamion care se deosebeşte prin tonaj. Determinaţi constructorii, destructorii şi alte funcţii
necesare.

Programul in C++:
#include <iostream>
#include <conio.h>
#include <cstring>
using namespace std;
class Automobil;
class Autocamion;
class Roata;

class Roata{
protected:
float raza;
int stat;
public:
Roata(){}
Roata(float ra){raza=ra;}
~Roata(){}
friend class Automobil;};

class Autocamion{
protected:
float tonaj;
public:
Autocamion(){}
Autocamion(float t){tonaj=t;}
void Citire_Ca(){
cout<<"Tonajul:";
cin>>tonaj;}
void Arata_Ca(){cout<<tonaj;}
~Autocamion(){}};

class Automobil: public Autocamion{


protected:
Roata r;
char Firma[10];
public:
Automobil(){}
Automobil(char *f, float t, float raz): r(raz), Autocamion(t){
strcpy(Firma,f);}

void Citire_Auto(){
int v;
float rz;
cout<<"Firma:";
cin>>Firma;
cout<<"Raza la roti:";
cin>>rz;
r.raza=rz;
Citire_Ca();}

void Afisare(){
cout<<"\nFirma:"<<Firma;
cout<<"\nRaza rotilor:"<<r.raza;
cout<<"\nTonajul( la autocamioane):";
Arata_Ca();}
~Automobil(){}
friend class Roata;};

main(){
Automobil ob1, ob2("Honda",6.1,3.5);
ob1.Citire_Auto();
ob1.Afisare();
cout<<"\n";
ob2.Afisare();}

Rezultatul:

Concluzie:

La lucrarea de laborator nr.4 am facut cunostinta cu moştenirea şi compoziţia. Am identificat ca


fara functie friend al compozitiei programul da eroare deoarece datele a clasei derivate sunt in
sectie protejate. Avantajele acetuia sunt volumul codului, micsorarea timpului compilarii si
erorilor