首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该在C++中使用结构吗?

我应该在C++中使用结构吗?
EN

Stack Overflow用户
提问于 2010-09-28 23:19:02
回答 9查看 9.6K关注 0票数 19

在C++中,结构和类之间的区别很小,基本上只是结构成员是默认公共的,而类成员是默认私有的。

但是,当我需要纯数据结构时,我仍然使用结构,例如:

代码语言:javascript
复制
struct Rectangle {
    int width;
    int height;
};

我发现使用它非常方便:

代码语言:javascript
复制
Rectangle r;
r.width = 20;
r.height = 10;

然而,数据结构来自过程化编程,而我正在做面向对象编程。将这个概念引入OO是不是一个坏主意?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-09-28 23:22:15

不是的。如果在某个地方使用结构是有意义的,那么为什么要使用其他不符合其目的的东西来使事情复杂化呢?

在我的项目中,我倾向于使用struct来处理简单的“结构”,这些结构只需要保存一些微不足道的数据。

如果一个数据结构需要一些“智能”和隐藏的字段/方法,那么它就变成了一个类。

票数 36
EN

Stack Overflow用户

发布于 2010-09-28 23:26:24

结构对于POD (普通老式数据)封装特别有用。在struct vs class in C++上有更多关于这方面的内容

票数 6
EN

Stack Overflow用户

发布于 2010-09-28 23:23:46

在我看来,不,这不是一个坏主意。如果你打算以同样的方式使用一个类,比如

代码语言:javascript
复制
class Rectangle {
    public:
        int width;
        int height;
};

那么你也可以使用struct。这将有助于确保您不会忘记声明任何公共内容,如果您保持一致,那么未来的开发人员(包括将来的您)将知道您的意图纯粹是一个数据对象,而不是其中的方法。

从所有可用性的角度来看,它仍然是一个对象,所以不,它与OO设计并不冲突。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3814282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档