Klasy w wielu plikach w C ++
Jestem prawie w 100% pewien, że mam poprawną składnię w obu tych klasach, ale otrzymuję następujące błędy:
Dla CShape.cpp - "błąd C2011: 'CShape': 'class' typ redefinition" For CCircle.cpp - "błąd CS2504: 'CShape': klasa bazowa undefined"
Oto pełny kod dla CShape.cpp
#include <iostream>
using namespace std;
class CShape
{
protected:
float area;
virtual void calcArea();
public:
float getArea()
{
return area;
}
}
A oto kod dla 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;
}
}
Jak widać, CShape jest klasą bazową, z której CCircle ma dziedziczyć. Jestem całkiem nowy w C ++, więc mogłem mieć błędne struktury plików (być może baza ma znajdować się w pliku nagłówkowym?), Jeśli coś takiego ma znaczenie.