fcamuso

Corso C++ 47: module, prima parte

Aug 16th, 2026
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. export module geometry_single;
  2.  
  3. import <numbers>; //per pi greco
  4.  
  5. export class Rettangolo {
  6. public:
  7.     Rettangolo(double base, double altezza);
  8.  
  9.     [[nodiscard]] double perimetro() const noexcept;
  10.     [[nodiscard]] double area() const noexcept;
  11.  
  12. private:
  13.     double base{ 0.0 };
  14.     double altezza{ 0.0 };
  15. };
  16.  
  17. export class Cerchio {
  18. public:
  19.     constexpr explicit Cerchio(double raggio);
  20.  
  21.     [[nodiscard]] double perimetro() const noexcept;
  22.     [[nodiscard]] double area() const noexcept;
  23.  
  24. private:
  25.     double raggio{ 0.0 };
  26. };
  27.  
  28. Rettangolo::Rettangolo(double base, double altezza)
  29.     : base(base), altezza(altezza) {}
  30.  
  31. double Rettangolo::perimetro() const noexcept {
  32.     return 2.0 * (base + altezza);
  33. }
  34.  
  35. double Rettangolo::area() const noexcept {
  36.     return base * altezza;
  37. }
  38.  
  39. constexpr Cerchio::Cerchio(double raggio)
  40.     : raggio(raggio) {}
  41.  
  42. double Cerchio::perimetro() const noexcept {
  43.     return 2.0 * std::numbers::pi * raggio;
  44. }
  45.  
  46. double Cerchio::area() const noexcept {
  47.     return std::numbers::pi * raggio * raggio;
  48. }
  49.  
  50.  
Advertisement
Add Comment
Please, Sign In to add comment