Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-is-ab:laboratoare:06 [2024/10/30 22:24]
razvan.cristea0106 [Moștenirea multiplă]
poo-is-ab:laboratoare:06 [2025/01/19 22:29] (current)
razvan.cristea0106
Line 1: Line 1:
-===== Laborator 6 - Moștenire multiplă și agregare =====+===== Laborator 06 - Moștenire multiplă și agregare =====
  
 **Autor: Răzvan Cristea** **Autor: Răzvan Cristea**
Line 24: Line 24:
 **Moștenirea** poate fi vizualizată ca o structură arborescentă,​ ceea ce explică de ce organizarea claselor într-un astfel de sistem este denumită **ierarhie de clase**. Într-o **ierarhie**,​ fiecare **clasă derivată** își are rădăcinile în **clasele părinte**, iar această organizare permite construirea unei structuri **logice** și **ordonate** a relațiilor dintre clase. De exemplu, în C++, putem observa în imaginea de mai jos un **arbore de fluxuri (ierarhia claselor de fluxuri)** în care clasele specifice de intrare și ieșire (precum **''​ifstream''​**,​ **''​ofstream''​**,​ **''​stringstream''​**) sunt derivate din clase generale precum **''​istream''​**,​ **''​ostream''​** sau **''​iostream''​**. Această structură arborescentă oferă atât claritate conceptuală,​ cât și flexibilitate în reutilizarea și extinderea funcționalităților claselor. **Moștenirea** poate fi vizualizată ca o structură arborescentă,​ ceea ce explică de ce organizarea claselor într-un astfel de sistem este denumită **ierarhie de clase**. Într-o **ierarhie**,​ fiecare **clasă derivată** își are rădăcinile în **clasele părinte**, iar această organizare permite construirea unei structuri **logice** și **ordonate** a relațiilor dintre clase. De exemplu, în C++, putem observa în imaginea de mai jos un **arbore de fluxuri (ierarhia claselor de fluxuri)** în care clasele specifice de intrare și ieșire (precum **''​ifstream''​**,​ **''​ofstream''​**,​ **''​stringstream''​**) sunt derivate din clase generale precum **''​istream''​**,​ **''​ostream''​** sau **''​iostream''​**. Această structură arborescentă oferă atât claritate conceptuală,​ cât și flexibilitate în reutilizarea și extinderea funcționalităților claselor.
  
-{{ :​poo-is-ab:​laboratoare:​arbore_fluxuri.jpg?​200 |}}+{{ :​poo-is-ab:​laboratoare:​arbore_fluxuri.jpg?​400 |}}
  
-Pentru acest laborator propunem ca și clase părinte **ProdusComercial** și respectiv **PiesaElectronica**,​ iar ca și clasă copil **CameraWeb**. Dacă am menționat **moștenire** acest lucru este echivalent cu relația de **"​is-a"​** ceea ce înseamnă că **orice cameră web** este un **produs comercial** și în același timp **orice cameră web** este o **piesă electronică**.+Pentru acest laborator propunem ca și clase părinte **ProdusComercial** și respectiv **PiesaElectronica**,​ iar ca și clasă copil **CameraWeb**. Dacă am menționat **moștenire** acest lucru este echivalent cu relația de **"​is-a"​** ceea ce înseamnă că **orice cameră web** este un **produs comercial** și în același timp **orice cameră web** este și o **piesă electronică**.
  
 Declarația clasei **ProdusComercial** se poate observa în blocul de cod mai jos. Declarația clasei **ProdusComercial** se poate observa în blocul de cod mai jos.
Line 79: Line 79:
 #include "​PiesaElectronica.h"​ #include "​PiesaElectronica.h"​
  
-class CameraWeb : public ProdusComercial,​ public PiesaElectronica // CameraWeb mosteneste atat ProdusComercial cat si PiesaElectronica+class CameraWeb : public ProdusComercial,​ public PiesaElectronica // CameraWeb mosteneste atat clasa ProdusComercial cat si clasa PiesaElectronica
 { {
  int rezolutie;  int rezolutie;
Line 336: Line 336:
 </​code>​ </​code>​
  
-Iar implementarea ​funcțiilor din cadrul namespace-ului se poate observa mai jos.+Iar implementările ​funcțiilor din cadrul namespace-ului se pot observa mai jos.
  
 <code cpp> <code cpp>
Line 367: Line 367:
 </​code>​ </​code>​
  
-Testarea acestui namespace este facută în **funcția main** după cum urmează în codul de mai jos.+Testarea acestui ​**namespace** este facută în **funcția main** după cum urmează în codul de mai jos.
  
 <code cpp> <code cpp>
poo-is-ab/laboratoare/06.1730319876.txt.gz · Last modified: 2024/10/30 22:24 by razvan.cristea0106
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0