gpt4 book ai didi

c++ - 创建对象类型的变量

转载 作者:行者123 更新时间:2023-12-02 10:23:04 24 4
gpt4 key购买 nike

我一直陷在这个问题上,似乎无法解决这个问题,我正在用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如何实现其 CPointCRect类作为指导。如果您看不到MFC的内容,那么 Windows.h文件提供了称为 POINTRECT的C样式结构,它们也可能会有所帮助。

关于c++ - 创建对象类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59226282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com