2011-06-05 49 views
2

我经历别人的代码和整个以下语法来:有人可以解释这个C++语法吗?

typedef struct abc { 

    abc() : member(0){} 

    unsigned int member 

} 

好像有成员变量和构造函数的类,但它声明结构。我在这里有两个问题。

  1. C语言是否支持该语法?
  2. 什么是使用结构类的理由?

非常感谢。

PS:如何格式化代码?

+0

我通过缩进4个空格格式化了代码。您可以突出显示代码,然后按编辑栏上方的“{}”图标。您需要在代码前后留下空行。编号列表类似。 – 2011-06-05 17:06:47

+0

另请参阅http://stackoverflow.com/questions/2750270/c-c-struct-vs-class – Cubbi 2011-06-05 17:07:14

回答

8

这不是有效C.

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

关于是否选择structclass没有硬性指导。但是,您经常会发现仅使用struct的人可以用于简单的类似C的普通旧数据结构(“POD”)。

+0

继承也是如此。 – ildjarn 2011-06-05 17:07:03

+0

我经常在构建函子时使用struct。 – 2011-06-05 17:44:18

0

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

3

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

0

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

0
  1. 的语法被支撑。构造函数将member初始化为0,不做任何其他操作。
  2. struct的默认访问权限为public
相关问题