The Shape Header File 

ERROR: Constructor for 'Rectangle' must explicitly initialize the base class 'Shape' which does not have a default constructor

```
 #ifndef Rectangle_hpp
#define Rectangle_hpp

#include "shape.hpp"

#include <stdio.h>

class Rectangle:public Shape{
    double m_length;
    double m_width;
public:
    Rectangle(double length,double width):Shape("Rectangle"){}
    double getPerimeter();
    double getArea();

};

#endif /* Rectangle_hpp */

```

The Shape cpp File

ERROR: Redefinition of 'Rectangle'

```
#include "Rectangle.hpp"

#include "shape.hpp"
#include "Rectangle.hpp"

Rectangle::Rectangle(double length,double width):Shape("Rectangle"){
    m_length = length;
    m_width = width;
}
double Shape::getPerimeter(){
    return 2;
}
double Shape::getArea(){
    return 2;
}

```

BASE class Header File

```
#ifndef shape_hpp
#define shape_hpp

#include <stdio.h>

class Shape{
    const char* m_name;
public:
    Shape(const char* name);
    virtual double getPerimeter()=0;
    virtual double getArea()=0;
    char getType();
};

#endif /* shape_hpp */

```

Base Class cpp file

```
#include "shape.hpp"

Shape::Shape(const char* name){
    m_name = name;
}

char Shape::getType(){
    return *m_name ;
}

```

I made another class "Circle" with the same layout as Rectangle and didnt get any errors, these errors are only appearing the the rectangle class.. i am stuck and have no idea why.