I have a very simple program that doesn't seem to be working, and I can't find the root of the problem. This program is divided into 3 parts: the Header.h file, the Header.cpp file, and the Main.cpp file. In Header.h I define the functions, in Header.cpp I actually have the code for the functions, and in Main.cpp I call the functions.
Here is Header.h:


double SquareArea( double );

double Rectangle ( double );

double Circle ( double );
Here is Header.cpp:


double SquareArea ( double x )
    double squarearea;
    squarearea = x * x;
    return squarearea;

double Rectangle ( double y )
    double recarea;
    recarea = y * y;
    return recarea;

double Circle ( double z )
    double circarea;
    circarea = z * z * 3.14;
    return circarea;
Here is Main.cpp:

// Main.cpp

#include <iostream>
#include "Header.h"
#include "Header.cpp"

using namespace std;

//Global variables
double squarearea , recarea , circarea;

int main()
    double x = 5;
    double y = 5;
    double z = 5;
    SquareArea ( x );
    cout << squarearea;
    Rectangle ( y );
    cout << recarea;
    Circle ( z );
    cout << circarea;
    int a;
    cin >> a;
    return 0;
When I try to run these three files together, I get a few errors:

Main.o(.text+0x0):Main.cpp: multiple definition of `SquareArea(double)'
Header.o(.text+0x0):Header.cpp: first defined here
Main.o(.text+0x2c):Main.cpp: multiple definition of `Rectangle(double)'
Header.o(.text+0x2c):Header.cpp: first defined here
Main.o(.text+0x60):Main.cpp: multiple definition of `Circle(double)'
Header.o(.text+0x60):Header.cpp: first defined here

make.exe: *** ["Square] Error 1

Execution terminated

I really don't know what these mean, so if someone could explain them to me so I could correct my code, I would be grateful. Thanks.

(By the way, the code is supposed to find the area of a square, a rectangle, and a circle, subsequently. I know this way is really complicated, but as you can see, I need practice. )