1*70ec8419SPeterChou1 #pragma once 2*70ec8419SPeterChou1 3*70ec8419SPeterChou1 #include "Shape.h" 4*70ec8419SPeterChou1 5*70ec8419SPeterChou1 /** 6*70ec8419SPeterChou1 * @brief Rectangle class derived from Shape. 7*70ec8419SPeterChou1 * 8*70ec8419SPeterChou1 * Represents a rectangle with a given width and height. 9*70ec8419SPeterChou1 */ 10*70ec8419SPeterChou1 class Rectangle : public Shape { 11*70ec8419SPeterChou1 public: 12*70ec8419SPeterChou1 /** 13*70ec8419SPeterChou1 * @brief Constructs a new Rectangle object. 14*70ec8419SPeterChou1 * 15*70ec8419SPeterChou1 * @param width Width of the rectangle. 16*70ec8419SPeterChou1 * @param height Height of the rectangle. 17*70ec8419SPeterChou1 */ 18*70ec8419SPeterChou1 Rectangle(double width, double height); 19*70ec8419SPeterChou1 20*70ec8419SPeterChou1 /** 21*70ec8419SPeterChou1 * @brief Calculates the area of the rectangle. 22*70ec8419SPeterChou1 * 23*70ec8419SPeterChou1 * @return double The area of the rectangle. 24*70ec8419SPeterChou1 */ 25*70ec8419SPeterChou1 double area() const override; 26*70ec8419SPeterChou1 27*70ec8419SPeterChou1 /** 28*70ec8419SPeterChou1 * @brief Calculates the perimeter of the rectangle. 29*70ec8419SPeterChou1 * 30*70ec8419SPeterChou1 * @return double The perimeter of the rectangle. 31*70ec8419SPeterChou1 */ 32*70ec8419SPeterChou1 double perimeter() const override; 33*70ec8419SPeterChou1 34*70ec8419SPeterChou1 private: 35*70ec8419SPeterChou1 double width_; ///< Width of the rectangle. 36*70ec8419SPeterChou1 double height_; ///< Height of the rectangle. 37*70ec8419SPeterChou1 };