何时使用比使用C ++中的类更合理的结构?

时间:2013-04-27 05:27:30

标签: c++

我一直在阅读Qt Creator的源代码。 何时使用struct比在C ++中使用class更合适?

4 个答案:

答案 0 :(得分:4)

纯粹是个人偏好或编码惯例的问题。 structclass在C ++中基本相同,区别在于publicstruct的默认访问说明符和基类private class

例如,Bar的两个定义是等价的:

class Foo {};
struct Bar : Foo {};
class Bar : public Foo {};

这里也是:

class Foo {};
struct Bar : private Foo {};
class Bar : Foo {};

也在这里:

class Bar
{
  int n;     // private
 public:
  double x;  // public
}; 

struct Bar
{
 private:
  int n;
 public:
  double x;
}; 

此外,您可以将Barclass Bar转发为struct Bar或{{1}}。

答案 1 :(得分:1)

除了默认访问(struct => public,class => private)之外没有区别。为了便于阅读,我更喜欢在定义一个普通的C结构(只是数据)时,或者当我的大多数成员/方法是公共的时使用struct。

答案 2 :(得分:1)

我认为struct是一个记录。它们将变量捆绑在一起,您希望在没有间接的情况下访问和修改struct成员,例如函数调用。例如,当您想要将数据项组一起写入以将它们转储到文件中或通过网络发送它们时,使用类甚至可能使代码更难以阅读和理解。

答案 3 :(得分:0)

如果是没有任何功能的普通旧数据,它可能更合适。在C ++中,classstruct之间的唯一区别是默认情况下struct成员为public,而privateclass