この同じエラーでいくつかの他のページを検索しましたが、自分のコードに問題が見つかりません。私が疲れていてC++に若干新しくなっているだけかもしれません。クラスC++の再定義 - Xcode
私は3つの派生クラスを持つ親クラスのshape.hを持っています。 rectangle.h、triangle.h、およびcircle.hです。親クラスは、3行目に「Shapeの再定義」というエラーを取得するクラスです。私の人生では、派生クラスから形状コンストラクタを呼び出す方法以外に、何が間違っているのか分かりません。お手伝いをしてください。必要な情報はもう私に教えてください。
Shape.h:
の#include < cmath>
class Shape
{
public:
//constructors
Shape();
Shape(float a);
Shape(float a, float b);
//Returns
float area();
float perimeter();
protected:
float base;
float height;
float radius;
};
Shape.cpp:
の#include "Shape.h"
//constructors
Shape::Shape()
{
base = 0;
height = 0;
radius = 0;
}
Shape::Shape(float a)
{
radius = a;
}
Shape::Shape(float a, float b)
{
base = a;
height = b;
}
//returns
float Shape::area()
{
return 0;
}
float Shape::perimeter()
{
return 0;
}
すべての派生クラスが異なる以外は同じですここではCircle.hです:
#include "Shape.h"
class Circle: public Shape
{
public:
//constructors
Circle();
Circle(float a);
//Returns
float area();
float perimeter();
private:
};
Circle.cpp:Circle.cpp
Shape.h
で
の#include "Circle.h"
//constructors
Circle::Circle():Shape()
{
}
Circle::Circle(float a):Shape(a)
{
}
//returns
float Circle::area()
{
return (3.14 * pow(radius,2));
}
float Circle::perimeter()
{
return (2 * 3.14 * radius);
}
ありがとうございます!しかし、好奇心の念から、正確に何がエラーになるのか分かりますか? – user6383357
@ user6383357ガードのない 'Circle.cpp'では、' Shape.h'が間接的に2回インクルードされ、前述のコンパイルエラーが発生します。 – Nikita
ありがとう、それは理にかなって、私はそれがそうであると思った。 – user6383357