Sunteți pe pagina 1din 4

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei

RAPORT
Lucrarea de laborator Nr.5
La Programarea Orientata pe Obiecte

A efectuat: st. gr. AI-191

Palamarciuc Adrian

A verificat: dr., conf.univ.

Lisnic Inga
Codul programului:
Ex a:
#include <iostream>
using namespace std;
class avion
{
public:
    int a;
};
class corabie
{
public:
    int b;
};
class elicopter_de_apa : public avion, public corabie
{
public:
    int c;
};
int main(int argc, char const *argv[])
{
    elicopter_de_apa ob1;
    cout << "Dati un numar pentru data din clasa avion! " << endl;
    cin >> ob1.a;
    cout << "Dati un numar pentru data din clasa corabie! " << endl;
    cin >> ob1.b;
    cout << "Dati un nuamr pentru data din clasa elicopter de apa! " << endl;
    cin >> ob1.c;
    cout << "Rezultatele obtinute!" << endl;
    cout << "A= " << ob1.a << endl;
    cout << "B= " << ob1.b << endl;
    cout << "C= " << ob1.c << endl;
    return 0;
}

Ex b:
#include <iostream>
using namespace std;
class transport
{
public:
    int d;
};
class avion : virtual public transport
{
public:
    int a;
};
class corabie : virtual public transport
{
public:
    int b;
};
class elicopter_de_apa : public avion, public corabie
{
public:
    int c;
};
int main(int argc, char const *argv[])
{
    elicopter_de_apa ob1;
    cout << "Dati un numar pentru data din clasa avion! " << endl;
    cin >> ob1.a;
    cout << "Dati un numar pentru data din clasa corabie! " << endl;
    cin >> ob1.b;
    cout << "Dati un nuamr pentru data din clasa elicopter de apa! " << endl;
    cin >> ob1.c;
    cout << "Dati un numar pentru data din clasa transport!" << endl;
    cin >> ob1.d;
    cout << "Rezultatele obtinute!" << endl;
    cout << "A= " << ob1.a << endl;
    cout << "B= " << ob1.b << endl;
    cout << "C= " << ob1.c << endl;
    cout << "D= " << ob1.d << endl;
    return 0;
}

Screenshoturi:

Ex a:
Ex b:

Intrebari de control:

1) Avantajele mostenirii multiple sunt:


- Flexibilitate in contruirea claselor
- Obtinerea unor structuri de clase mai complexe
2) Problema mostenirii multiple este atunci cand doua clase au variabile cu aceeasi denumire
sau doua functii cu aceeasi denumire.
3) Problemele se clasifica in probleme la nivel de clasa si la nivel de date
4) La nivel de date se paote folosi supraincarcarea operatorului de rezolutie, iar la nivel de
clasa se poate de declarat clasa virtuala
5) Mostenirea virtuala este necesara pentru a evita dublicarea variabilelor din clase diferite cu
acelasi nume.
6) Mostenirea virtuala este realizata prin intermediul cuvintului-cheie virtual
7) Constructorii si destructorii se comporta dupa aceleasi reguli si proceduri ca si in cazul
relatiei de mostenire multipla

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