我应该使用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?