C中结构体和C++中结构体的区别
成员方法
- C语言结构体中不能包含成员函数,只能包含成员变量
- C++结构体可以包含成员函数
继承和多态
- C语言结构体不支持继承和多态的概念
- C++结构体支持继承和多态,从基类继承成员和实现多态行为
类型定义
- C语言结构体一般使用typedef关键字进行类型定义
- C++结构体同样可以使用typedef关键字,但是比较少用,因为结构体的名称本身就可以作为类型
访问控制
- C语言结构体成员没有访问控制符,所有成员都是公开的
- C++结构体成员访问权限默认是公开的,但是可以通过public、private、protected访问权限修饰符来进行控制。
C++结构体和类的区别
两者的界限非常模糊,都可以用于组织和封装数据,只有细微的差别,使用类比较多一点,C++结构体的作用主要是为了兼容C语言中的结构体。
默认访问级别
- 结构体中,默认的成员访问级别是public
- 类中,默认的成员访问级别是private
这是最主要的区别,后续学习遇到会进行补充