我有一个项目,它有一个GUI(用QT编写)和一个命令行版本。我使用了QT中包含的矩形类:QRect。我想打破命令行版本对QT的依赖,所以我需要一个支持交集和联合的插入式矩形类。我可以写一个,但如果可能,我宁愿包括一个。
有什么想法吗?
答案 0 :(得分:0)
如果您要找到一个要包括的内容,它可能是另一个依赖项的一部分。所以你最好的办法是尝试自己写。现在是练习制作模板类的好时机。 :)
template <typename T>
struct point
{
// or maybe you'd prefer to make these private
T x;
T y;
};
template <typename T>
struct rectangle
{
public:
typedef point<T> point_type;
bool contains(const point_type& pPoint)
{
return !(pPoint.x < topleft.x) && (pPoint.x < bottomright.x) &&
!(pPoint.y < topleft.y) && (pPoint.y < bottomright.y);
}
T width(void) const
{
return bottomright.x - topleft.x;
}
// and more stuff
// or maybe you'd prefer to make these private, nor
// is this the only way to represent a rectangle.
point_type topleft;
point_type bottomright;
};
对不起,这不是你期待的答案。
关于你的设计,我希望你没有使用你的GUI版本,执行副本,然后将其修改为控制台版本。更好的是建立一个图书馆;然后,GUI与控制台仅仅是演示问题。