我试图创建一个通用的功能,这需要在同一类的两个对象的通用功能,并返回相同的对象为两个不同的类
这是我的两个类: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:我想返回一个Point2D对象,其X,Y坐标是2的Point2D之间的差异对象
对于三维点:我想返回一个三维点对象,其X,Y,Z坐标是differenc es之间2个Point3D对象
我可以创建一个通用函数来处理这两个? 。
下面是我有这么远,但它只能处理Point2D对象,我怎么三维点对象集成到通用功能如下
型板T PointDiff(T PT1,T PT2)
{
T pt3;pt3.x = pt1.x - pt2.x;
pt3.y = pt1.y - pt2.y;
return 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; }
有人可以请帮我谢谢
搜索模板专业化。 iirc(很长一段时间没有编写C++),你可以对某些类型参数有一个明确的专门化。然而,我只是想知道为什么你想在这里使用模板方法?... –
哈哈它的一个功课问题,因此必须这样做 – Computernerd