- 在 C 语言中 struct 是用户自定义数据类型;在 C++ 中 struct 是抽象数据类型,支持成员函数的定义。C++ 中的 class 可以实现 struct 的所有功能,C++ 为了兼容 C 语言保留了 struct 关键字。
- C 语言中 struct 没有访问权限的设置,是一些变量的集合体,不能定义成员函数;C++ 中 struct 可以和类一样,有访问权限,并可以定义成员函数。
- C 语言中 struct 定义的自定义数据类型,在定义该类型的变量时,需要加上 struct 关键字,例如:struct A var;,定义 A 类型的变量;而 C++ 中,不用加该关键字,例如:A var。
备注: C语言也可以达到类似的使用效果,但是要在结构体的定义上做点文章。如下示例:
1 | // 定义 |
- C++ 中 struct 可以继承,也可以实现多态,而 C 语言中不支持继承和多态。
参考文档:
https://leetcode.cn/leetbook/read/cmian-shi-tu-po/vw7qa3/