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

for*_*eal 19 c++ oop data-structures

在C++中,struct和class之间的区别很小,基本上只有struct成员是默认的public,而class member是默认的private.

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

struct Rectangle {
    int width;
    int height;
};
Run Code Online (Sandbox Code Playgroud)

我觉得使用非常方便:

Rectangle r;
r.width = 20;
r.height = 10;
Run Code Online (Sandbox Code Playgroud)

但是,数据结构来自过程编程,我正在进行面向对象的编程.将这个概念引入OO是一个坏主意吗?

ere*_*eOn 34

不.如果在某个地方使用结构是有意义的,为什么你会使用其他不符合目的的东西使事情变得复杂?

在我的项目中,我倾向于使用struct简单的"结构",只需要保存一些琐碎的数据.

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

  • 事实上,这种方式一直使用,`struct`可靠地告诉读者"我是一个愚蠢的数据结构". (21认同)
  • @phkahler,structs将像类一样拥有默认构造函数. (4认同)

Ste*_*end 6

结构对POD(普通旧数据)封装特别有用.在C++中,struct vs class还有很多内容