有人可以解释这个C ++语法吗?

时间:2011-06-05 17:04:07

标签: c++

我正在浏览其他人的代码并遇到以下语法:

typedef struct abc {

   abc() : member(0){}

   unsigned int member

}

它似乎是一个带有成员变量和构造函数的类,除了它被声明为struct。我在这里有两个问题。

  1. C?
  2. 是否支持此语法
  3. 在类上使用结构的原因是什么?
  4. 提前多多感谢。

    PS:我如何格式化代码?

5 个答案:

答案 0 :(得分:8)

这是无效的C.

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

关于是否选择structclass,没有严格的指导原则。但是,您经常会发现人们仅使用struct来处理简单的类似C的普通旧数据结构(“POD”)。

答案 1 :(得分:3)

这绝对是C ++。 structclass在C ++中是相同的,除了为继承和类内容默认为public而不是private。

答案 2 :(得分:0)

在C ++中,struct和class本质上是相同的,除了对于struct成员默认是公共的。所以,就像你上课一样阅读它。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

  1. 支持语法。构造函数将member初始化为0,不执行任何其他操作。
  2. struct的默认访问权限为public