私はコードを持っています:
class Point3D{
protected:
float x;
float y;
float z;
public:
Point3D(){x=0; y=0; z=0;}
Point3D(const Point3D & point){x = point.x; y = point.y; z = point.z;}
Point3D(float _x,float _y,float _z){x = _x; y = _y; z = _z;}
}
class Vector3D{
protected:
Point3D start;
Point3D end;
public:
...
Point3D getSizes(){
return Point3D(end-start);
}
}
ベクトルを取る Point3D の operator+ を作成したい:
Point3D & operator+(const Vector3D &vector){
Point3D temp;
temp.x = x + vector.getSizes().x;
temp.y = y + vector.getSizes().y;
temp.z = z + vector.getSizes().z;
return temp;
}
しかし、その操作を Point3D クラス宣言の横に置くと、ここで Vector3D が宣言されていないため、エラーが発生しました。また、Point3D を使用しているため、Point3D の前に Vector3D 宣言を移動することはできません。