TP 1, question 4

This commit is contained in:
Yohan Boujon 2023-10-05 12:13:16 +02:00
parent 1c8251ad16
commit f825c6e5f5
3 changed files with 26 additions and 12 deletions

View file

@ -20,17 +20,24 @@ public:
virtual std::string afficherCaracteristiques() override; virtual std::string afficherCaracteristiques() override;
virtual int perimetre() override; virtual int perimetre() override;
private: protected:
uint _hauteur, _longueur; uint _hauteur, _longueur;
}; };
class Carre : public Polygone { class Carre : public Rectangle {
public: public:
Carre(uint cote); Carre(uint cote);
};
class TriangleEquilateral : public Polygone
{
public:
TriangleEquilateral(uint cote);
virtual std::string afficherCaracteristiques() override; virtual std::string afficherCaracteristiques() override;
virtual int perimetre() override; virtual int perimetre() override;
private: private:
uint _cote; uint _cote;
float _angle;
}; };
#endif // HEADER_POLYGONE #endif // HEADER_POLYGONE

View file

@ -9,4 +9,6 @@ int main(void)
std::cout << rect.afficherCaracteristiques() << std::endl; std::cout << rect.afficherCaracteristiques() << std::endl;
Carre car(2); Carre car(2);
std::cout << car.afficherCaracteristiques() << std::endl; std::cout << car.afficherCaracteristiques() << std::endl;
TriangleEquilateral tri(5);
std::cout << tri.afficherCaracteristiques() << std::endl;
} }

View file

@ -26,26 +26,31 @@ Rectangle::Rectangle(uint hauteur, uint longueur)
std::string Rectangle::afficherCaracteristiques() 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() int Rectangle::perimetre()
{ {
return _longueur * _hauteur; return (2*_longueur)+(2*_hauteur);
} }
Carre::Carre(uint cote) Carre::Carre(uint cote)
: Polygone(4) : Rectangle(cote, cote)
{
}
TriangleEquilateral::TriangleEquilateral(uint cote)
: Polygone(3)
, _cote(cote) , _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())); return 3*_cote;
}
int Carre::perimetre()
{
return _cote * _cote;
} }