Exercice 1.3 - TP 1

This commit is contained in:
Yohan Boujon 2023-10-05 09:32:17 +02:00
parent bc22a1cd69
commit 1c8251ad16
3 changed files with 64 additions and 8 deletions

View file

@ -4,14 +4,33 @@
#include "figure.h" #include "figure.h"
#include <sys/types.h> #include <sys/types.h>
class Polygone : public Figure class Polygone : public Figure {
{
public: public:
Polygone(u_int64_t nb_cotes); Polygone(u_int64_t nb_cotes);
virtual std::string afficherCaracteristiques() override; virtual std::string afficherCaracteristiques() override;
virtual int perimetre() override; virtual int perimetre() override;
private:
protected:
u_int64_t _nbcotes; u_int64_t _nbcotes;
}; };
class Rectangle : public Polygone {
public:
Rectangle(uint hauteur, uint longueur);
virtual std::string afficherCaracteristiques() override;
virtual int perimetre() override;
private:
uint _hauteur, _longueur;
};
class Carre : public Polygone {
public:
Carre(uint cote);
virtual std::string afficherCaracteristiques() override;
virtual int perimetre() override;
private:
uint _cote;
};
#endif // HEADER_POLYGONE #endif // HEADER_POLYGONE

View file

@ -5,4 +5,8 @@ int main(void)
{ {
Polygone coolPoly(5); Polygone coolPoly(5);
std::cout << coolPoly.afficherCaracteristiques() << std::endl; std::cout << coolPoly.afficherCaracteristiques() << std::endl;
Rectangle rect(4,8);
std::cout << rect.afficherCaracteristiques() << std::endl;
Carre car(2);
std::cout << car.afficherCaracteristiques() << std::endl;
} }

View file

@ -16,3 +16,36 @@ int Polygone::perimetre()
{ {
return 0; return 0;
} }
Rectangle::Rectangle(uint hauteur, uint longueur)
: Polygone(4)
, _hauteur(hauteur)
, _longueur(longueur)
{
}
std::string Rectangle::afficherCaracteristiques()
{
return std::string("Nombre de cotes : 4\tPerimetre :"+std::to_string(perimetre()));
}
int Rectangle::perimetre()
{
return _longueur * _hauteur;
}
Carre::Carre(uint cote)
: Polygone(4)
, _cote(cote)
{
}
std::string Carre::afficherCaracteristiques()
{
return std::string("Nombre de cotes : 4\tPerimetre :"+std::to_string(perimetre()));
}
int Carre::perimetre()
{
return _cote * _cote;
}