【问题标题】:When is using a struct more reasonable than using a class in C++? [duplicate]什么时候使用结构比使用 C++ 中的类更合理? [复制]
【发布时间】:2013-04-21 08:25:06
【问题描述】:

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

【问题讨论】:

    标签: c++


    【解决方案1】:

    当它是没有任何功能的普通旧数据时,它可能更合适。在 C++ 中,classstruct 之间的唯一区别是 struct 成员默认为 public,而 private 则为 class

    【讨论】:

      【解决方案2】:

      这纯粹是个人喜好或编码约定的问题。 structclass 在 C++ 中基本相同,不同之处在于默认访问说明符和基类为 public 用于 structprivate 用于 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;
      }; 
      

      此外,您可以将 Bar 转发声明为 class Barstruct Bar 互换。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2010-12-08
            • 2011-06-16
            • 2019-05-10
            • 1970-01-01
            • 2020-03-05
            • 2010-09-11
            • 2011-02-20
            • 2021-06-13
            相关资源
            最近更新 更多