我打算定义一个类,即它的属性中包含的坐标为x / y的网格。 不过,我不能确定的“最好”的方式来处理这个设计。 这是一个非常简单的问题,我只想做是正确的,有一个理由!
一种解决办法是有两个属性,类型“的int
”,一个用于x和一个用于Y,在对象内。
另一个将是定义包含x / y值并将其命名为两个整数的typedef结构<ClassPrefix>Coordinate
。 类似CGSize
?
是否有其他/更好的方法来做到这一点? 这是首选? 不知道如何不管怎样自圆其说。
谢谢!
蒂姆。
这个问题的答案在“哪一个优先?” 问题取决于几个因素:
- 有多少类似的商品要创建? -如果答案是“百万”,
struct
胜; 如果答案是“58”,对象胜。 - 你需要定义它的方法? - 如果答案是“是”,对象胜; 否则,
struct
可能确定。 - 你打算来定义它的阵列? -如果答案是“是”,
struct
可能是更好的选择。 - 你需要创建和销毁往往它? -如果答案是“是”,
struct
可能是更好的选择。
最终,你的设计约束帮助你决定什么是最好的; 没有数据结构,是普遍“更好”。
除了@dasblinkenlight答案,我会给你一些建议的决定:
这是一个权衡。
A类和它的实例将花费更多的资源,尤其是当你必须让他们中的很多。 如果不会有那么多的情况下,这是没有问题的。
结构是快,但它很难程度和最不方便的是一个结构不能持物或方法。
对于你的榜样,如果你只是使用它的坐标,我建议你使用结构。 但是它取决于你的设计和代码。 没有绝对的判断,这是最好。
文章来源: typedef struct vs. Object - Benefits