【发布时间】:2013-11-15 05:55:55
【问题描述】:
我正在尝试创建一个通用函数,它接收同一个类的两个对象并返回同一个对象
这是我的两个课程: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 对象之间的差异
对于 Point3D :我试图返回一个 Point3D 对象,其 X、Y、Z 坐标是 2 个 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; }
谁能帮帮我,谢谢
【问题讨论】:
-
搜索模板专业化。 iirc(很久没写C++了)你可以对某些类型参数有一个明确的专业化。但是我只是想知道您为什么要在这里使用模板方法?...
-
哈哈这是一个家庭作业问题,因此必须这样做
标签: c++ class debugging templates generics