xref: /llvm-project/clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Rectangle.h (revision 70ec8419dd722abeddf09e11f01500ae62334394)
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 };