【问题标题】:Structs and Classes in C++C++ 中的结构和类
【发布时间】:2011-09-08 03:52:40
【问题描述】:

在 C++ 中,如果你创建这样的结构或类

struct foo {

}

您必须像在 c 中那样使用 struct 或 class 限定符来创建另一个,否则为什么呢?什么时候适合在 C++ 中使用它

例子

结构 foo a;

谢谢:-)

【问题讨论】:

  • 结构在 C++ 中表现为公共类并创建新类型,因此使用 struct 关键字创建变量完全是可选的。
  • @rubixibuc - 添加了C++ 标签,因为这将是合适的。

标签: c++ class naming struct


【解决方案1】:

struct 不是必需的。在 C++ 中,structclass 之间的唯一区别是,在 struct 中,成员默认为 public,而在 class 中,成员默认为 private

【讨论】:

    【解决方案2】:

    不,在 C++ 中实例化时不需要 struct 关键字。顺便说一句,结构定义应该以;结尾

    【讨论】:

      【解决方案3】:

      你可以,但你不必这样做。你最好不要,如果你不打算将你的代码与纯 C 混合,这是正确的 C++ 风格。原因是 C++ 的设计者认为 C 的标签概念不必要地复杂。我倾向于同意。

      【讨论】:

        【解决方案4】:

        在 C 中,您可以通过使用 typedef 来避免它。在 C++ 中,类型是自动创建的,因此无需显式声明它。

        C 语法使其相似:

        typedef struct {
        ....
        } foo;
        

        然后你可以通过说foo x;来使用它

        【讨论】:

          猜你喜欢
          • 2012-02-05
          • 2017-04-18
          • 2011-02-23
          • 1970-01-01
          • 2015-09-04
          • 1970-01-01
          • 2021-04-01
          • 2015-10-02
          • 2010-09-07
          相关资源
          最近更新 更多