rendered paste body#include <math.h>class RightTriangle{ double height; double base; double hypotenuse;public: RightTriangle(void); RightTriangle(double setBase); RightTriangle(double setBase,double setHeight); RightTriangle(double setBase,double setHeight,double setHypotenuse); void setHeight(double setHeight); double getHeight(void); void setBase(double setBase); double getBase(void); void setHypotenuse(double setHypotenuse); double getHypotenuse(void); bool calculateSides(void); double getArea(void); double getPerimeter(void);};RightTriangle::RightTriangle(){ height = base = hypotenuse = 0;}RightTriangle::RightTriangle(double setBase){ RightTriangle(); RightTriangle::setBase(setBase);}RightTriangle::RightTriangle(double setBase,double setHeight){ RightTriangle(); RightTriangle::setBase(setBase); RightTriangle::setHeight(setHeight);}RightTriangle::RightTriangle(double setBase,double setHeight,double setHypotenuse){ RightTriangle(); RightTriangle::setBase(setBase); RightTriangle::setHeight(setHeight); RightTriangle::setHypotenuse(setHypotenuse);}void RightTriangle::setHeight(double setHeight){ height = setHeight;}double RightTriangle::getHeight(){ if(!height) { calculateSides(); } return height;}void RightTriangle::setBase(double setBase){ base = setBase;}double RightTriangle::getBase(){ if(!base) { calculateSides(); } return base;}void RightTriangle::setHypotenuse(double setHypotenuse){ hypotenuse = setHypotenuse;}double RightTriangle::getHypotenuse(){ if(!hypotenuse) { calculateSides(); } return hypotenuse;}bool RightTriangle::calculateSides(){ if(base && height && hypotenuse && (hypotenuse > height) && (hypotenuse > base)) { return true; } if(base && height && !hypotenuse) { setHypotenuse ( sqrt((base * base) + (height * height)) ); if (hypotenuse > base && hypotenuse > height) { return true; } else { return false; } } if(base && hypotenuse && !height) { setHeight ( sqrt((hypotenuse * hypotenuse) - (base * base)) ); if (hypotenuse > base && hypotenuse > height) { return true; } else { return false; } } if (height && hypotenuse && !base) { setBase ( sqrt((hypotenuse * hypotenuse) - (height * height)) ); if(hypotenuse > base && hypotenuse > height) { return true; } else { return false; } } return false;}double RightTriangle::getArea(){ if(!base || !height) { calculateSides(); } return 0.5 * base * height;}double RightTriangle::getPerimeter(){ if(!base || !height || !hypotenuse) { calculateSides(); } return base + height + hypotenuse;}