2

我一直在阅读 Qt Creator 的源代码。什么时候使用 a 比在 C++中使用 astruct更合适?class

4

4 回答 4

4

这纯粹是个人喜好或编码约定的问题。struct并且class在 C++ 中基本相同,不同之处在于默认访问说明符和基类public用于 astructprivate用于 a 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 Barstruct Bar互换。

于 2013-04-27T05:29:37.467 回答
1

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

于 2013-04-27T05:30:27.150 回答
1

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

于 2013-04-27T05:33:39.860 回答
0

当它是没有任何功能的普通旧数据时,它可能更合适。class在 C++ 中,和之间的唯一区别structstruct成员public默认情况下是,而不是privatefor class

于 2013-04-27T05:29:20.277 回答