Overloading main () errors for C++ 50 Classes

I had no success locating C++ code with at least 50 classes for my reverse engineering effort so, I expanded a simpler program to 50 classes.  I am not a developer.  I am getting overload errors for main ().  I get it but don’t know how to fix it.

// multiple inheritance  
#include <iostream>
using namespace std;

class GeoShape {
  protected:
    int width, height, alt, apothem;
   
  public:
    GeoShape (int a, int b, int h, int m) : width(a), height(b), alt(h), apothem(m)  {}
};

class Output {
  public:
    static void print (int i);
};

void Output::print (int i) {
  cout << i << ‘\n’;
};

class Rectangle: public GeoShape, public Output {
  public:
    Rectangle (int a, int b, int h, int m) : GeoShape(a,b,h,m) {}
    int main()
{
 cout << “Rectangle Area” << endl;
 return 0;
}
int area ()

      { return width*height; }
};

class Triangle: public GeoShape, public Output {
  public:
    Triangle (int a, int b, int h, int m) : GeoShape(a,b,h,m) {}
    int main()
   {
 cout << “Triangle Area” << endl;
 return 0;
}
 int area ()
      { return width*height/2; }

};
class Trapezoid: public GeoShape, public Output {
  public:
    Trapezoid (int a, int b, int h, int m) : GeoShape(a,b,h, m) {}
    int main()
   {
 cout << “Trapezoid Area” << endl;
 return 0;
}
 int area ()
      { return (width+height)*alt/2; }

};
class Square: public GeoShape, public Output {
  public:
    Square (int a, int b, int h, int m) : GeoShape(a, b, h, m) {}
    int main()
   {
 cout << “Square Area” << endl;
 return 0;
}
 int area ()
      { return width*width; }

};
class Pentagon: public GeoShape, public Output {
  public:
    Pentagon (int a, int b, int h, int m) : GeoShape(a, b, h, m) {}
    int main()
  {
 cout << “Pentagon Area” << endl;
 return 0;
}
 int area ()
     {  return (apothem*width*5)/2; }

};
class Hexagon: public GeoShape, public Output {
  public:
    Hexagon (int a, int b, int h, int m) : GeoShape(a, b, h, m) {}
    int main()
  {
 cout << “Hexagon Area” << endl;
 return 0;

    int area ()
      { return (apothem*alt)/2;} 

};
class Heptagon: public GeoShape, public Output {
  public:
    Heptagon (int a, int b, int h, int m) : GeoShape(a, b, h, m) {}
    int main()
  {
 cout << “Heptagon Area” << endl;
 return 0;
}
    int area ();
    int cotan()
      { return  double cotan(double i) { return(1 / tan(i)); }
      { return (7*(width*width))/4 * cotan(180/7) ;} 

};
class Octagon: public GeoShape, public Output {
  public:
    Octagon (int a, int b, int h, int m) : GeoShape(a, b, h, m) {}
    int main()
  {
 cout << “Octagon Area” << endl;
 return 0;
}
  int area ()
      { return (2*(1+sqrt2)*(width*width)) ;} 

};
class Nonagon: public GeoShape, public Output {
  public:
    Nonagon (int a, int b, int h, int m) : GeoShape(a, b, h, m) {}
    int main()
   {
 cout << “Nonagon Area” << endl;
 return 0;
}
 int area ();
    int cotan()
     { return  double cotan(double i) { return(1 / tan(i)); }
      { return (9*(width*width)/4)*(cotan(180/9)) ;} 

};
class Decagon: public GeoShape, public Output {
  public:
    Decagon (int a, int b, int h, int m) : GeoShape(a, b, h, m) {}
    int main()
  {
 cout << "Decagon Area " << endl;
 return 0;
}  int area ()
      { return (5*(width*width)/2)*(sqrt(5+2sqrt5)) ;}

class SMRectangle: public GeoShape, public Output {
  public:
    … too long to post full code

int main () {
  Rectangle rect (4,5,10,3);
  Triangle trg (4,5,10,3);
  Trapezoid trap (4,5,10,3);
  Square sq (4, 5,10,3);
  Pentagon pnt (4,5,10,3);
  Hexagon hex (4,5,10,3);
  Heptagon hep (4,5,10,3);
  Octagon oct (4,5,10,3);
  Nonagon non (4,5,10,3);
  Decagon dec (4,5,10,3);
  SMRectangle smrect (2,3,7,2);
  SMTriangle smtrg (2,3,7,2);
  SMTrapezoid smtrap (2,3,7,2);
  SMSquare smsq (2,3,7,2);
  SMPentagon smpnt (2,3,7,2);
  SMHexagon smhex (2,3,7,2);
  SMHeptagon smhep (2,3,7,2);
  SMOctagon smoct (2,3,7,2);
  SMNonagon smnon (2,3,7,2);
  SMDecagon smdec (2,3,7,2);
  MDRectangle mdrect (3,6,11,4);
  MDTriangle mdtrg (3,6,11,4);
  MDTrapezoid mdtrap (3,6,11,4);
  MDSquare mdsq (3,6,11,4);
  MDPentagon mdpnt (3,6,11,4);
  MDHexagon mdhex (3,6,11,4);
  MDHeptagon mdhep (3,6,11,4);
  MDOctagon mdoct (3,6,11,4);
  MDNonagon mdnon (3,6,11,4);
  MDDecagon mddec (3,6,11,4);
  LGRectangle lgrect (5,7,11,4);
  LGTriangle lgtrg (5,7,11,4);
  LGTrapezoid lgtrap (5,7,11,4);
  LGSquare lgsq (5,7,11,4);
  LGPentagon lgpnt (5,7,11,4);
  LGHexagon lghex (5,7,11,4);
  LGHeptagon lghep (5,7,11,4);
  LGOctagon lgoct (5,7,11,4);
  LGNonagon lgnon (5,7,11,4);
  LGDecagon lgdec (5,7,11,4);
  VSRectangle vsrect (1,2,5,2);
  VSTriangle vstrg (1,2,5,2);
  VSTrapezoid vstrap (1,2,5,2);
  VSSquare vssq (1,2,5,2);
  VSPentagon vspnt (1,2,5,2);
  VSHexagon vshex (1,2,5,2);
  VSHeptagon vshep (1,2,5,2);
  VSOctagon vsoct (1,2,5,2);
  VSNonagon vsnon (1,2,5,2);
  VSDecagon vsdec (1,2,5,2);
  VLRectangle vlrect (8,10,12,5);
  VLTriangle vltrg (8,10,12,5);
  VLTrapezoid vltrap (8,10,12,5);
  VLSquare vlsq (8,10,12,5);
  VLPentagon vlpnt (8,10,12,5);
  VLHexagon vlhex (8,10,12,5);
  VLHeptagon vlhep (8,10,12,5);
  VLOctagon vloct (8,10,12,5);
  VLNonagon vlnon (8,10,12,5);
  VLDecagon vldec (8,10,12,5);
  Rectangle.print (rect.area());
  Triangle::print (trg.area());
  Trapezoid::print (trap.area());
  Square::print (sq.area());
  Pentagon::print (pnt.area());
  Hexagon::print (hex.area());
  Heptagon::print (hep.area());
  Octagon::print (oct.area());
  Nonagon::print (non.area());
  Decagon::print (dec.area());
  SMRectangle.print (smrect.area());
  SMTriangle::print (smtrg.area());
  SMTrapezoid::print (smtrap.area());
  SMSquare::print (smsq.area());
  SMPentagon::print (smpnt.area());
  SMHexagon::print (smhex.area());
  SMHeptagon::print (smhep.area());
  SMOctagon::print (smoct.area());
  SMNonagon::print (smnon.area());
  SMDecagon::print (smdec.area());
  MDRectangle.print (mdrect.area());
  MDTriangle::print (mdtrg.area());
  MDTrapezoid::print (mdtrap.area());
  MDSquare::print (mdsq.area());
  MDPentagon::print (mdpnt.area());
  MDHexagon::print (mdhex.area());
  MDHeptagon::print (mdhep.area());
  MDOctagon::print (mdoct.area());
  MDNonagon::print (mdnon.area());
  MDDecagon::print (mddec.area());
  LGRectangle.print (lgrect.area());
  LGTriangle::print (lgtrg.area());
  LGTrapezoid::print (lgtrap.area());
  LGSquare::print (lgsq.area());
  LGPentagon::print (lgpnt.area());
  LGHexagon::print (lghex.area());
  LGHeptagon::print (lghep.area());
  LGOctagon::print (lgoct.area());
  LGNonagon::print (lgnon.area());
  LGDecagon::print (lgdec.area());
  VSRectangle.print (vsrect.area());
  VSTriangle::print (vstrg.area());
  VSTrapezoid::print (vstrap.area());
  VSSquare::print (vssq.area());
  VSPentagon::print (vspnt.area());
  VSHexagon::print (vshex.area());
  VSHeptagon::print (vshep.area());
  VSOctagon::print (vsoct.area());
  VSNonagon::print (vsnon.area());
  VSDecagon::print (vsdec.area());
  VLRectangle.print (vlrect.area());
  VLTriangle::print (vltrg.area());
  VLTrapezoid::print (vltrap.area());
  VLSquare::print (vlsq.area());
  VLPentagon::print (vlpnt.area());
  VLHexagon::print (vlhex.area());
  VLHeptagon::print (vlhep.area());
  VLOctagon::print (vloct.area());
  VLNonagon::print (vlnon.area());
  VLDecagon::print (vldec.area());
  return 0;
};