结构和类之间的区别?

时间:2014-08-13 16:21:30

标签: c++ data-structures

结构的大小和等效类的大小是否保证相等?

2 个答案:

答案 0 :(得分:1)

假设您正在询问CPP。 结构的成员默认是公共的。 在课堂上,他们默认为私人。

struct和class在功能上是等价的。 结构通常用作开放数据容器。

类和结构的大小趋于相同,因为其数据成员的顺序顺序相同,并且您没有更改默认成员对齐。

答案 1 :(得分:1)

基本上structclass在C ++中是相同的,有两点不同:

  • 默认情况下,结构的成员为public,而在课程中他们是private。当程序员提供时,访问修饰符仍然适用。
  • 从类或结构派生结构时,基数的默认访问修饰符为public。在派生类时,默认访问权限为private

一般来说,程序员假设在struct中所有成员都是公开的并且可以自由修改,而在class中,他们都将是私有的,并且getter / setter将在适当的时候出现。这仅仅是惯例,而不是由语言强制执行。

由于除了默认访问之外,编译器对它们的处理方式相同,因此保证大小相同。这两个关键字在历史上都受C ++支持的主要原因,即使稍微冗余,也是与C只有struct存在的向后兼容性。