C结构和C ++结构

时间:2010-02-11 06:32:42

标签: c++ c

请问有谁请告诉我主要区别是什么 C& C ++结构。

6 个答案:

答案 0 :(得分:67)

在C ++中structclass完全相同,除了该结构默认为public可见性,类默认为private可见性。

在C中,结构名称在它们自己的命名空间中,所以如果你有struct Foo {};,你需要编写struct Foo foo;来创建该类型的变量,而在C ++中你可以只编写{{ 1}},虽然也允许C风格。 C程序员通常使用Foo foo;来允许C ++语法用于变量定义。

C编程语言也不支持可见性限制,成员函数或继承。

答案 1 :(得分:11)

在C ++中,结构的行为类似于类,允许方法,构造函数,析构函数等......

类和C ++结构之间的主要区别在于,默认情况下,结构中的所有内容都是 public ,而类中的所有内容都默认为 private 。 (即:外面没有人可以直接访问它们)

答案 2 :(得分:3)

除了上面的答案,请记住C ++结构支持继承,因此可以包含指向vtable的指针。在跨进程序列化和反序列化这些结构时,这会产生很大的不同。也支持模板。

答案 3 :(得分:3)

C:我们无法在c。

中定义结构内部的函数

C ++:我们可以在c ++中定义结构内部的函数。

答案 4 :(得分:3)

C和C ++结构存在一些差异

  1. 在C中,我们定义struct关键字是创建结构类型值所必需的,而在C ++中则不是必需的。

  2. 在C中,结构中没有函数,而在C ++中我们可以定义直接访问结构数据成员的函数(函数是C ++中的方法名称)

  3. 在C语言结构中没有访问修饰符的概念,而在C ++中我们可以找到访问修饰符(例如私有和公共)。默认情况下,所有内容都是公开的。

  4. C中的结构不能有静态成员,而在C ++结构中可以有静态成员。

  5. 空结构的大小在C中是约束违规,但在C ++中总是1。

  6. 我们可以在C ++中使用指针和struct的引用,但只允许指向结构的指针。 (参考文献不是C语言的特征)

答案 5 :(得分:2)

C结构更类似于复合数据结构的定义

C ++结构可以被视为一个类,但所有成员变量的范围都默认为公共。