Self-returning a class

Header File: Box.h

#if !defined VolumesH#define VolumesHnamespace Volumes{class TBox{public:    TBox(double L = 0, double H = 0, double W = 0);    TBox(const TBox &Box);    ~TBox();    void   setLength(const double L) { Length = (L <= 0) ? 0 : L; }    double getLength() const { return (Length < 0) ? 0 : Length; }     void   setHeight(const double H) { Height = (H <= 0) ? 0 : H; }    double getHeight() const { return (Height < 0) ? 0 : Height; }     void   setWidth(const double W)  { Width  = (W <= 0) ? 0 : W; }    double getWidth() const  { return (Width < 0) ? 0  : Width; }    void   setDimensions(const double L, const double H, const double W);    double Area() const;    double Volume() const;    TBox &Add(const double Value);    TBox &Sub(const double Value);    TBox &Mul(const double Value);    TBox &Div(const double Value);    TBox &Add(const TBox& B);private:    double Length;    double Height;    double Width;};}#endif	// VolumesH

Source File: Box.cpp

#include "Volumes.h"namespace Volumes{TBox::TBox(double L, double H, double W)	: Length(L), Height(H), Width(W){}TBox::TBox(const TBox &Box)	: Length(Box.Length),      Height(Box.Height),	  Width(Box.Width){}TBox::~TBox(){}void TBox::setDimensions(const double L, const double H, const double W){	setLength(L);	setHeight(H);	setWidth(W);}double TBox::Area() const{	return 2 * ( ( getLength() * getHeight()) +		         ( getHeight() * getWidth() ) +		         ( getLength() * getWidth() ) );}double TBox::Volume() const{    return getLength() * getHeight() * getWidth();}TBox &TBox::Add(const double d){	Length = Length + d;	Height = Height + d;	Width  = Width  + d;	return *this;}TBox &TBox::Sub(const double d){	Length = Length - d;	Height = Height - d;	Width  = Width  - d;	return *this;}TBox &TBox::Mul(const double d){	Length = Length * d;	Height = Height * d;	Width  = Width  * d;	return *this;}TBox &TBox::Div(const double d){	if( d == 0 )	{		Length = 0;		Height = 0;		Width  = 0;	}	else	{		Length = Length / d;		Height = Height / d;		Width  = Width  / d;	}	return *this;}TBox &TBox::Add(const TBox& Box){	TBox NewBox;	NewBox.Length = NewBox.Length + Box.Length;	NewBox.Height = NewBox.Height + Box.Height;	NewBox.Width  = NewBox.Width  + Box.Width;	return *this;}}    // namespace Volumes

Source File: Main.cpp

#include <iostream>#include <iomanip>#include "Volumes.h"using namespace std;using namespace Volumes;void GetDimensions(TBox *Box){    double L, H, W;    cout << "Specify the dimensions of the box\n";    cout << "Length: "; cin >> L;    cout << "Height: "; cin >> H;    cout << "Width:  "; cin >> W;    Box->setDimensions(L, H, W);}void ShowProperties(const TBox *Box){	cout << "\nBox Properties";	cout << setiosflags(ios::fixed) << setprecision(2);	cout << "\nLength = " << Box->getLength();	cout << "\nHeight = " << Box->getHeight();	cout << "\nWidth  = " << Box->getWidth();	cout << "\nArea   = " << Box->Area();	cout << "\nVolume = " << Box->Volume() << "\n";}int main(){    TBox Box(16.42, 12.84, 14.56);	cout << "Box Examples";	Box = Box.Add(20.54);	ShowProperties(&Box);    return 0;}