Advertisement
darkjessy94

assocazione-aggregazione-ereditarietà

Sep 7th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.39 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Motore
  6. {
  7. public:
  8.     Motore(int nPistoniI,int cilindrataI)
  9.     {
  10.         nPistoni=nPistoniI;
  11.         cilindrata=cilindrataI;
  12.     }
  13.     ~Motore(){}
  14.     ///int start(){ return 1}
  15.  
  16. private:
  17.     int nPistoni;
  18.     int cilindrata;
  19. };
  20.  
  21. class Veicolo
  22. {
  23. public:
  24.     Veicolo(string targaI,string nTelaioI,Motore *motoreI)///con l'aggregazione dobbiamo passare il puntatore della classe
  25.     {                                                     ///aggregata all'interno del costruttore della classe che la aggrega
  26.         targa=targaI;
  27.         nTelaio=nTelaioI;
  28.         motore=motoreI;
  29.     }
  30.     ~Veicolo()
  31.     {
  32.         delete motore;///dealloco il puntatore motore in questo distruttore
  33.     }
  34.     void Avvia ()
  35.     {
  36.         ///stato = motore->start();
  37.     }
  38. private:
  39.     string targa;
  40.     string nTelaio;
  41.     Motore *motore;/// <--- Aggregazione
  42.     ///int stato;
  43. };
  44. class Passeggero
  45. {
  46. public:
  47.     Passeggero(string nomeI,string cognomeI,Pullman *pullmanI)///Pullman *pullmanI è per l'associazione
  48.     {
  49.         nome=nomeI;
  50.         cognome=cognomeI;
  51.         pullman=pullmanI;
  52.     }
  53.     void collegaPullman(Pullman* pullman){...}///associazione
  54. private:
  55.     string nome;
  56.     string cognome;
  57.     Pullman *pullman; ///associazione
  58. } ;
  59. class Pullman:public Veicolo///ereditarierà
  60. {
  61. public:
  62.     ///costruttore di pullman con invocazione del costruttore della classe base (Passeggero *persI è per l'associazione)
  63.     Pullman(string targaI,string nTelaioI,Motore *motoreI,int nPostiI,string societaI,Passeggero *persI) : Veicolo(targaI,nTelaioI,motoreI)
  64.     {
  65.         nPosti=nPostiI;
  66.         societa=societaI;
  67.         passeggero=persI;
  68.     }
  69.     ~Pullman(){}
  70.     int postiLiberi()
  71.     {
  72.         return nPosti;
  73.     }
  74.     void prenota()
  75.     {
  76.         nPosti--;
  77.     }
  78.     void CollegaPasseggeroPosseduto(Passeggero* passeggero){...}///associazione
  79. private:
  80.     int nPosti;
  81.     string societa;
  82.     Passeggero *passeggero;///associazione
  83. };
  84.  
  85.  
  86.  
  87. int main()
  88. {
  89.     Motore a(2,10); ///creiamo oggetto motore a
  90.     Motore *ptr=&a; ///creiamo puntatore motore e passiamogli l'indirizzo di oggetto a
  91.     Veicolo auto1("1234","boh",ptr); ///creiamo oggetto auto1 passiamogli il puntatore (AGGREGAZIONE)
  92.  
  93.     ///associazione
  94.     Passeggero b;
  95.     Passeggero *p=&b;
  96.     Pullman("555","plastica",ptr,50,"BLP",p);
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement