我应该使用C ++中的结构吗?
C ++中结构和类的区别很小,基本上只有那些结构成员是默认公共的,而类成员是默认私有的。
但是,每当我需要纯数据结构时,我仍然使用结构体,例如:
struct Rectangle {
int width;
int height;
};
我发现与之合作非常方便:
Rectangle r;
r.width = 20;
r.height = 10;
但是,数据结构来自程序编程,而我正在做面向对象编程。 将这个概念引入OO是不是一个好主意?
不。如果在某个地方使用结构是有意义的,那么为什么使用其他不符合目的的其他东西使事情复杂化呢?
在我的项目中,我倾向于使用struct
来构造简单的“结构”,只需要保存一些简单的数据。
如果一个数据结构需要有一些“智能”和隐藏的字段/方法,那么它就成为一个类。
结构对于POD(普通旧数据)封装特别有用。 在C ++的struct和class上有更多的内容
在我看来,不,这不是一个坏主意。 如果你打算以同样的方式使用一门课,比如说
class Rectangle {
public:
int width;
int height;
};
那么你也可以使用一个struct
。 这将有助于确保您不会忘记声明任何公开内容,并且如果保持一致,那么未来的开发人员(包括未来的开发人员)将会知道您将其纯粹作为数据对象,而不是其中的方法。
从所有可用性角度来看,它仍然是一个对象,所以不,它不会与OO设计相冲突。
链接地址: http://www.djcxy.com/p/40313.html上一篇: Should I use structs in C++?
下一篇: If I delete a class, are its member variables automatically deleted?