我几乎 100% 确定我在这两个类中都有正确的语法,但是我收到以下错误:
对于 CShape.cpp - “错误 C2011: 'CShape' : 'class' 类型重新定义” 对于 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++ 很陌生,所以我可能有错误的文件结构(也许基础应该在头文件中?),如果这样的事情很重要。