在C++中,结构和类之间的区别很小,基本上只是结构成员是默认公共的,而类成员是默认私有的。
但是,当我需要纯数据结构时,我仍然使用结构,例如:
struct Rectangle {
int width;
int height;
};
我发现使用它非常方便:
Rectangle r;
r.width = 20;
r.height = 10;
然而,数据结构来自过程化编程,而我正在做面向对象编程。将这个概念引入OO是不是一个坏主意?
发布于 2010-09-28 23:22:15
不是的。如果在某个地方使用结构是有意义的,那么为什么要使用其他不符合其目的的东西来使事情复杂化呢?
在我的项目中,我倾向于使用struct
来处理简单的“结构”,这些结构只需要保存一些微不足道的数据。
如果一个数据结构需要一些“智能”和隐藏的字段/方法,那么它就变成了一个类。
发布于 2010-09-28 23:26:24
结构对于POD (普通老式数据)封装特别有用。在struct vs class in C++上有更多关于这方面的内容
发布于 2010-09-28 23:23:46
在我看来,不,这不是一个坏主意。如果你打算以同样的方式使用一个类,比如
class Rectangle {
public:
int width;
int height;
};
那么你也可以使用struct
。这将有助于确保您不会忘记声明任何公共内容,如果您保持一致,那么未来的开发人员(包括将来的您)将知道您的意图纯粹是一个数据对象,而不是其中的方法。
从所有可用性的角度来看,它仍然是一个对象,所以不,它与OO设计并不冲突。
https://stackoverflow.com/questions/3814282
复制相似问题