C++ 结构和类之间的区别?

C++ 结构和类之间的区别?,c++,data-structures,C++,Data Structures,结构的大小和等价类的大小保证相等吗?假设您询问的是CPP。 默认情况下,结构的成员是公共的。 在类中,它们默认为private 结构和类在功能上是等价的。 结构通常用作开放式数据容器 由于其数据成员的排序顺序相同,且未更改默认成员对齐,类和结构的大小将趋于相同。 < P>本质上结构> 和类< /代码>在C++中是相同的,有2个不同: 默认情况下,结构的成员是public,而在类中它们是private。当由程序员提供时,访问修饰符仍然适用 从类或结构派生结构时,基的默认访问修饰符为public。

结构的大小和等价类的大小保证相等吗?

假设您询问的是CPP。 默认情况下,结构的成员是公共的。 在类中,它们默认为private

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


由于其数据成员的排序顺序相同,且未更改默认成员对齐,类和结构的大小将趋于相同。

< P>本质上<代码>结构> <代码>和<代码>类< /代码>在C++中是相同的,有2个不同:

  • 默认情况下,结构的成员是
    public
    ,而在类中它们是
    private
    。当由程序员提供时,访问修饰符仍然适用
  • 从类或结构派生结构时,基的默认访问修饰符为
    public
    。在派生类时,默认访问权限为
    private
一般来说,程序员假定在
结构中,所有成员都是公共的,并且可以自由修改,而在
类中,它们都是私有的,并且getter/setter会根据需要出现。这仅仅是惯例,而不是由语言强制执行


因为除了默认访问之外,编译器对它们的处理是相同的,所以大小保证是相同的。两个关键词在历史上被C++支持,但略微冗余,主要原因是与C兼容,其中只有“代码>结构>代码存在。

C没有类,可能会问CPP?C结构和C++类。除了访问说明符,它们之间有什么区别?我想要他们的尺寸?比如哪一个需要更大的尺寸。考虑到尺寸差异的附加问题,这不是重复。正在申请重新开放。你怎么知道它们的大小会一样?标准是否明确保证?如果不更改默认包装,尺寸将相同。我编辑了我的答案,因为标准没有明确保证结构和类的大小是相同的。@user3822244该标准使用
class
struct
可以互换。在三个类键中,奇数的一个是
union
。其他两个基本相同。@juanchopanza我又看了一眼C99的第6.7.2.1节,你是对的。工会一直是奇怪的。