同じクラスの 2 つのオブジェクトを受け取り、同じオブジェクトを返す汎用関数を作成しようとしています。
これは私の2つのクラスです:Point2D
とPoint3D
class Point2D
{
public:
Point2D();
Point2D(int,int);
int getX() const;
int getY() const;
void setX(int);
void setY(int);
protected:
int x;
int y;
};
class Point3D:public Point2D
{
public: Point3D();
Point3D(int,int,int);
void setZ(int);
int getZ() const;
protected:
int z;
};
Point2D の場合: X、Y 座標が 2 つの Point2D オブジェクトの差である Point2D オブジェクトを返そうとしています。
Point3D の場合: X、Y、Z 座標が 2 つの Point3D オブジェクトの差である Point3D オブジェクトを返そうとしています。
これらの両方を処理する汎用関数を作成できますか??? .
以下は私がこれまでに持っているものですが、Point2Dオブジェクトのみを処理します.Point3Dオブジェクトを以下の汎用関数に統合するにはどうすればよいですか
テンプレート T PointDiff(T pt1, T pt2)
{
T pt3;pt3.x = pt1.x - pt2.x;
pt3.y = pt1.y - pt2.y;
pt3 を返します。
}
私はこのようなことを考えていましたが、問題はPoint2DオブジェクトにZ座標がないことです
テンプレート T PointDiff(T pt1, T pt2) {
T pt3;pt3.x = pt1.x - pt2.x;
pt3.y = pt1.y - pt2.y;
pt3.z = pt1.z - pt2.z
pt3 を返します。}
誰かが私を助けてくれませんか