Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >
  1. 在 C 语言中 struct 是用户自定义数据类型;在 C++ 中 struct 是抽象数据类型,支持成员函数的定义。C++ 中的 class 可以实现 struct 的所有功能,C++ 为了兼容 C 语言保留了 struct 关键字。
  2. C 语言中 struct 没有访问权限的设置,是一些变量的集合体,不能定义成员函数;C++ 中 struct 可以和类一样,有访问权限,并可以定义成员函数。
  3. C 语言中 struct 定义的自定义数据类型,在定义该类型的变量时,需要加上 struct 关键字,例如:struct A var;,定义 A 类型的变量;而 C++ 中,不用加该关键字,例如:A var。

备注: C语言也可以达到类似的使用效果,但是要在结构体的定义上做点文章。如下示例:

1
2
3
4
5
6
7
8
9
10
// 定义
typedef struct __point_t
{
int x;
int y;
} Point;
// 使用
Point pt;
p5.x = 10;
p5.y = 10;
  1. C++ 中 struct 可以继承,也可以实现多态,而 C 语言中不支持继承和多态。

参考文档:
https://leetcode.cn/leetbook/read/cmian-shi-tu-po/vw7qa3/

推荐阅读
C++中类的多继承 C++中类的多继承 C++ 11 nullptr 比 NULL 的优势比较 C++ 11 nullptr 比 NULL 的优势比较 C++类的三种访问权限与三种继承方式 C++类的三种访问权限与三种继承方式

评论