fcamuso

Corso C++ 50: ereditarietá, prima parte

Sep 3rd, 2026
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. import std;
  2.  
  3. class Figura {
  4.     public:
  5.         Figura() {
  6.           std::println("Invocato costruttore della classe madre");
  7.         }
  8.  
  9.         auto set_spessore_tratto(int spessore) -> void {
  10.             spessore_tratto=spessore;
  11.         }
  12.        
  13.         auto get_spessore_tratto() -> int {return spessore_tratto;}
  14.    
  15.     private:
  16.         std::string colore{"nero"};
  17.         bool filled{false};
  18.    
  19.     protected:
  20.         int spessore_tratto{1};
  21. };
  22.  
  23. class Rettangolo : public Figura
  24. {
  25.     public:
  26.         Rettangolo() : Figura() {}
  27.         Rettangolo(int base, int altezza) : base{base}, altezza{altezza} {}
  28.  
  29.         auto enfatizza() -> void {
  30.             spessore_tratto *= 2;
  31.         }
  32.  
  33.         auto perimetro() -> int {
  34.             return 2 * (base+altezza);
  35.         }
  36.  
  37.     private:
  38.         int base{};
  39.         int altezza{};
  40. };
  41.  
  42. class Quadrato : public Rettangolo {
  43.  
  44.     public:
  45.         Quadrato(int lato) : Rettangolo(lato, lato) {}
  46. };
  47.  
  48.  
  49. auto main() -> int
  50. {
  51.     auto ret{Rettangolo{5, 7}};
  52.     //auto c = ret.colore; una var private é inacessibile a un oggetto di classe figlia
  53.     auto q{Quadrato(5)};
  54.     std::println("Perimetro del quadrato: {}", q.perimetro());
  55. }
  56.  
  57.  
  58.  
Advertisement
Add Comment
Please, Sign In to add comment