diff --git a/tp/include/polygone.h b/tp/include/polygone.h index b9cfba2..f05960c 100644 --- a/tp/include/polygone.h +++ b/tp/include/polygone.h @@ -20,17 +20,24 @@ public: virtual std::string afficherCaracteristiques() override; virtual int perimetre() override; -private: +protected: uint _hauteur, _longueur; }; -class Carre : public Polygone { +class Carre : public Rectangle { public: Carre(uint cote); +}; + +class TriangleEquilateral : public Polygone +{ +public: + TriangleEquilateral(uint cote); virtual std::string afficherCaracteristiques() override; virtual int perimetre() override; private: uint _cote; + float _angle; }; #endif // HEADER_POLYGONE \ No newline at end of file diff --git a/tp/src/main.cpp b/tp/src/main.cpp index 6b4a6ca..96501df 100644 --- a/tp/src/main.cpp +++ b/tp/src/main.cpp @@ -9,4 +9,6 @@ int main(void) std::cout << rect.afficherCaracteristiques() << std::endl; Carre car(2); std::cout << car.afficherCaracteristiques() << std::endl; + TriangleEquilateral tri(5); + std::cout << tri.afficherCaracteristiques() << std::endl; } \ No newline at end of file diff --git a/tp/src/polygone.cpp b/tp/src/polygone.cpp index 37643ce..6e9c6c4 100644 --- a/tp/src/polygone.cpp +++ b/tp/src/polygone.cpp @@ -26,26 +26,31 @@ Rectangle::Rectangle(uint hauteur, uint longueur) std::string Rectangle::afficherCaracteristiques() { - return std::string("Nombre de cotes : 4\tPerimetre :"+std::to_string(perimetre())); + return Polygone::afficherCaracteristiques()+std::string("\tPerimetre :"+std::to_string(perimetre())); } int Rectangle::perimetre() { - return _longueur * _hauteur; + return (2*_longueur)+(2*_hauteur); } Carre::Carre(uint cote) - : Polygone(4) + : Rectangle(cote, cote) +{ +} + +TriangleEquilateral::TriangleEquilateral(uint cote) + : Polygone(3) , _cote(cote) + , _angle(60.0f) +{} + +std::string TriangleEquilateral::afficherCaracteristiques() { + return Polygone::afficherCaracteristiques()+std::string("\tPerimetre :"+std::to_string(perimetre())+"\t Angles :"+std::to_string(_angle)); } -std::string Carre::afficherCaracteristiques() +int TriangleEquilateral::perimetre() { - return std::string("Nombre de cotes : 4\tPerimetre :"+std::to_string(perimetre())); -} - -int Carre::perimetre() -{ - return _cote * _cote; + return 3*_cote; } \ No newline at end of file