返回「计算机、信息技术与工程」

结构体

结构体 C++结构体与类的区别

更多
Markdown 结构化数据
本文目录 3 个章节

结构体

C++结构体与类的区别

结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性

类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private)

结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型(public)

C与C++结构体区别

C语言中结构体不允许定义函数成员,且没有访问控制属性的概念。

  • C++为C语言中的结构体引入了成员函数、访问控制权限、继承、包含多态等面向对象特性。
  • C++在struct之外引入了class关键字,但为了保持与C程序的兼容,C++保留了struct关键字,并规定结构体默认访问控制权限为公有类型。
  • C语言中,空结构体的大小为0,而C++中空结构体(属于空类)的大小为1。

C++中空类的大小为1的原因:

空类也可以实例化,类实例化出的每个对象都需要有不同的内存地址,为使每个对象在内存中的地址不同,所以在类中会加入一个隐含的字节。

Ref

https://www.cnblogs.com/Carrie-0173/p/6357715.html