I cannot seem to understand the errors I am getting when trying to compile a program that I have written. Any help appreciated..the problem states

Create a base class named Rectangle that contains length and width data members (doubles). From this class derive a class named Box having an additional date member named depth (double) and will have access to derived variables length and width. The base Rectangle class should have a constructor function prototype (initialize: double=1.0 and double=1.0) and an area() function that returns the area of the rectangle. The derived Box class should have a constructor function prototype (initialize: double=10.0, double=20.0,double=30.0), a volume function that returns the volume of the box, and an override function named area() that returns the surface area of the box. In function main(), declare an object of Rectangle class r and declare an object of Box class called b(3,4,5). Then display r.area(), b.area(), and b.volume().

Code:
 
#include<iostream>
using namespace std;
class Rectangle
{
      protected:
                double length;
                double width;
      public:
             Rectangle::Rectangle(double = 1.0,double = 1.0);
             double area();
             
};
double Rectangle::area()
{
       return(length * width);
}
class Box : public Rectangle
{
      protected:
                double depth;
      
      public:
              Box::Box(double 10.0,double 20.0,double 30.0);
              double volume();
              double area();
};
Box::Box(double l,double w,double d);
{
   length = l;
   width = w;
   depth=d;
}
double Box::volume();
{
       return(l * w * depth);
}
double Box::area();
{
       return(length * width);
}
int main()
{
    Rectangle r;
    Box b(3,4,5);
    
    cout<<r.area()<<endl;
    cout<<b.area()<<endl;
    cout<<b.volume()<<endl;
    
    system("pause");
    return 0;
}