Классы по нескольким файлам в C ++
Я почти на 100% уверен, что у меня есть правильный синтаксис в обоих этих классах, однако я получаю следующие ошибки:
Для CShape.cpp - «ошибка C2011:« CShape »; : "класс" переопределение типа & quot; Для CCircle.cpp - «ошибка CS2504:« CShape »: базовый класс не определен»
Вот полный код для CShape.cpp
#include <iostream>
using namespace std;
class CShape
{
protected:
float area;
virtual void calcArea();
public:
float getArea()
{
return area;
}
}
И вот код для CCircle.cpp
#include <iostream>
#include "CShape.cpp"
#define _USE_MATH_DEFINES
#include "math.h"
using namespace std;
class CCircle : public CShape
{
protected:
int centerX;
int centerY;
float radius;
void calcArea()
{
area = M_PI * (radius * radius);
}
public:
CCircle(int pCenterX, int pCenterY, float pRadius)
{
centerX = pCenterX;
centerY = pCenterY;
radius = pRadius;
}
float getRadius()
{
return radius;
}
}
Как видите, CShape - это базовый класс, от которого CCircle наследуется. Я довольно новичок в C ++, поэтому я могу ошибиться в структуре файлов (может быть, база должна быть в заголовочном файле?), Если что-то подобное имеет значение.