我一直陷在这个问题上,似乎无法解决这个问题,我正在用C ++创建一个程序,该程序可以计算各种功能,例如面积,周长,不同形状的点。
其中一部分包括创建Point类型的leftTop变量(Point是仅具有2个int(x和y)的类,以及一个称为Point的方法,用于打印出不同形状的x和y)。我使用了一个模板来创建一个只返回x和y的点类型的函数,我知道这是不正确的,但我想还是会尝试的。
template <typename Point>
Point leftTop(Point x, Point y) {
return x, y;
}
但是它必须是点类型的数据成员(存储在一个名为shape的类中),该数据成员用于存储形状左上点的x和y坐标,因此我坚持如何实现这一点,因为我需要使用leftTop变量来计算形状的其他点,例如leftBottom,rightTop等。
使用模板函数使事情变得过于复杂!在精确的解决方案取决于你如何定义你的Point
类,但你可能只需要一个相关的构造函数:
class Point
{
public
Point(int px, int py) : x{ px }, y{ py } {}
public: // Make these "private" if you want to prevent direct access
int x;
int y;
};
然后,您可以leftTop
非常轻松地创建对象:
int left = 12; // Or whatever
int top = 17;
Point leftTop(left, top);
您可以添加其他成员函数来执行几乎所有您需要处理的事情。
当您使用Visual Studio时,因此可以访问MFC类,因此您可以看一下MFC如何实现其CPoint
和CRect
类作为指导。如果您看不到MFC的内容,则该Windows.h
文件提供了称为的C样式结构POINT
,RECT
这也可能会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句