これらのクラスの両方で構文が正しいことはほぼ 100% 確信していますが、次のエラーが発生しています。
CShape.cpp の場合 - 「エラー C2011: 'CShape': 'class' type redefinition」 CCircle.cpp の場合 - 「エラー CS2504: 'CShape': base class undefined」
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++ にかなり慣れていないので、ファイル構造が間違っている可能性があります (おそらくベースはヘッダー ファイルにあるはずですか?)。