Différences entre les versions de « Langage C++/Objet »

798 octets ajoutés ,  il y a 12 ans
class Parallelogramme: public Quadrilatere
{
private:
double& mCorrectionAngle(double& pAngle);
 
protected:
virtual void mAngleA(double& pAngle);
virtual void mAngleB(double& pAngle);
virtual void mAngleC(double& pAngle);
virtual void mAngleD(double& pAngle);
 
public:
// Constructeur parametré
using namespace std;
 
double& mCorrectionAngle(double& pAngle)
{
// Corriger les dépassements
double vAngleMaximal = 180.0;
pAngle %= vAngleMaximal;
// Si l'angle est
if(pAngle < 0)
{
// Corriger le signe.
pAngle *= -1;
}
return pAngle;
}
 
virtual void mAngleA(double& pAngle)
{
 
}
 
virtual void mAngleB(double& pAngle);
virtual void mAngleC(double& pAngle);
virtual void mAngleD(double& pAngle);
// Constructeur parametré
Parallelogramme::Parallelogramme(double pArreteAB, double pArreteBC, double pAngleA):Quadrilatère(pArreteAB, pArreteBC, pArreteAB, pArreteBC, 0.0, 0.0, 0.0, 0.0)
{
// Dans un Parallélogramme les arrêtes :
// Enregistre de manière fiable la valeur en passant par la propriété.
// AB = CD et BC = AD.
this->mAngleA(&pAngleA);
// Les angles :
// A = C, B = D et A + B + C + D = 360°.
// Ici nous passons par les méthodes de Parallélogramme pour garantir que les angles seront inférieur ou égal à 180.
 
double vAngleMax = 180.0;
this->mAngleA(&pAngleA);
this->mAngleB(vAngleMax - this->mCorrectionAngle(pAngleA));
this->mAngleC(pAngleA);
this->mAngleD(vAngleMax - this->mCorrectionAngle(pAngleA));
}
 
virtual void Parallelogramme::mDessine()
{
//Dessine ici le parallélogrammeLosange (vrais code de dessin non pertinent car trop volumineux pour le gain obtenu sur l'intérêt de la leçon).
cout << "Dessine Parallelogramme :\n" << endl;
cout << "Dessine parallélogramme - AB = " << this->mArreteAB() << ", BC = " << this->mArreteBC() << ", CD = " << this->mArreteCD() << ", DA = " << this->mArreteDA() << this->mAngleA() << endl;
Quadrilatere::mDessine();
}
</source>
private:
double& mCorrectionAngle(double& pAngle);
 
protected:
virtual void mAngleA(double& pAngle);
<source lang="cpp">
#include "Losange.h"
 
// L'angle maximal d'un angle de losange est : 180°
double& Losange::mCorrectionAngle(double& pAngle)
{
// Corriger le signe.
pAngle +*= vAngleMaximal-1;
}
return pAngle;
}
 
Losange::Losange(double pArreteAB, double pArreteBC, double pAngleA):Quadrilatere(pArreteAB, pArreteBC, pArreteBC, pArreteAB, 0.0, 0.0, 0.0, 0.0)
{
// Dans un losange les arrêtes :
// Les angles :
// A = C, B = D et A + B + C + D = 360°.
// Ici jenous passepassons par les méthodes de Losange pour garantir que les angles seront inférieur ou égal à 180.
 
double vAngleMax = 180.0;
this->mAngleA(pAngleA);
this->mAngleB(vAngleMax - this->mCorrigerAnglemCorrectionAngle(pAngleA));
this->mAngleC(pAngleA);
this->mAngleD(vAngleMax - this->mCorrigerAnglemCorrectionAngle(pAngleA));
}
 
{
//Dessine ici le Losange (vrais code de dessin non pertinent car trop volumineux pour le gain obtenu sur l'intérêt de la leçon).
cout << "Dessine Losange :\n" << endl;
Quadrilatere::mDessine();
"\tAB = " << this->mArreteAB() << ",\n"
"\tBC = " << this->mArreteBC() << ",\n"
"\tCD = " << this->mArreteCD() << ",\n"
"\tDA = " << this->mArreteDA() << ",\n"
"\tAngle A = " << this->mAngleA() << ",\n"
"\tAngle B = " << this->mAngleB() << ",\n"
"\tAngle C = " << this->mAngleC() << ",\n"
"\tAngle D = " << this->mAngleD() << endl;
}
 
double aAngleD;
double& mCorrectionAngle(double& pAngle);
double& mCorrectionArrete(double& pArrete);
protected:
void mArreteAB(double& pArettepArrete);
void mArreteBC(double& pArettepArrete);
void mArreteCD(double& pArettepArrete);
void mArreteDA(double& pArettepArrete);
 
virtual void mAngleA(double& pAngle);
{
// Corriger le signe.
pAngle +*= vAngleMaximal-1;
}
return pAngle;
 
// Propriété AngleA de Quadrilatere. Remarquez comment la propriété contraint l'intégrité des données de la classe via la méthode mCorrectionAngle.
void Quadrilatere::mAngleA(double& pAngle): Figure()
{
// Mettre à jour l'angle.
this->aAngleA = mCorrectionAngle(pAngle);
}
 
 
// Une arrête n'est pas négative
double& Quadrilatere::mCorrigeArrettemCorrectionArrete(double& pAretepArrete)
{
if(pArrete < 0)
Quadrilatere::Quadrilatere(double& pArreteAB, double& pArreteBC, double& pArreteCD, double& pArreteDA, double& pAngleA, double& pAngleB, double& pAngleC, double& pAngleD)
{
// Assure l'intégrité de la classe;
this->mArreteAB(pArreteAB);
this->mArreteBC(pArreteBC);
Quadrilatere::~Quadrilatere()
{
// rien à détruire.
 
}
 
{
//Dessine ici le parallélogramme (vrais code de dessin non pertinent car trop volumineux pour le gain obtenu sur l'intérêt de la leçon).
cout << "Dessine Quadrilatere :\n" <<
"\tAB = " << this->mArreteAB() << ",\n" <<
"\tBC = " << this->mArreteBC() << ",\n" <<
"\tCD = " << this->mArreteCD() << ",\n" <<
"\tDA = " << this->mArreteDA() << ",\n" <<
"\tAngle A = " << this->mAngleA() << ",\n" <<
"\tAngle B = " << this->mAngleB() << ",\n" <<
"\tAngle C = " << this->mAngleC() << ",\n" <<
"\tAngle D = " << this->mAngleD() << endl;
}
{
}
 
Figure::~Figure()
{
1 049

modifications