有人能解释一下这个C++语法吗

Can someone explain this C++ syntax?

本文关键字:C++ 语法 一下 能解释      更新时间:2023-10-16

我正在浏览别人的代码,发现了以下语法:

typedef struct abc {
   abc() : member(0){}
   unsigned int member
}

它看起来像是一个带有成员变量和构造函数的类,只是它被声明为struct。我有两个问题。

  1. C中支持这种语法吗
  2. 在类上使用structs的原因是什么

提前非常感谢。

PS:我该如何格式化代码?

这是无效的C.

在C++中,structclass本质上是同义词。唯一的区别是,成员和继承在struct中默认为public,在class中默认为private

关于是选择struct还是class,没有硬性的指导原则。然而,您经常会发现人们只将struct用于简单的类似C的普通旧数据结构("POD")。

这无疑只是C++。structclass在C++中是相同的,只是对于继承和类内容默认为public而不是private。

在C++中,结构和类本质上是一样的,只是结构的成员默认为公共成员。所以只要像上课一样读就行了。

abc()是类abc的构造函数,member是内部变量,构造函数abc默认将member设置为0。

  1. 支持语法。构造函数将member初始化为0,不执行任何其他操作
  2. CCD_ 19具有默认的CCD_

这是C++代码,但是在C++代码中使用typedef struct(来自C)非常糟糕。C和C++之间有区别,在C++中不需要typedef结构。如果您想通过MyStruct myStruct;引用结构,那么struct MyStruct就足够了。将C与C++混合使用是不好的。