1、相同点
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。
struct能包含成员函数吗? 能!
struct能继承吗? 能!!
struct能实现多态吗? 能!!!
2、不同点
结构体中的数据默认方式是public的,而类是private的
结构体中的继承默认方式是public的,而类是private的
“class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数。
结构体数组效率比类数组效率高(不需要装箱合拆箱)。结构体集合(如Hashtable)效率比类集合效率低。集合的元素是引用类型,所以结构体必须进行装箱和拆箱处理。所以类在大的集合中更有效率。
结构体是struct为关键字起手的定义,而类是class。
Struct结构体是“复合类型”,其功能等同与基本的int,double的用法,尽管struct也可以写方法,但是不赞成这样做。因为struct的引入是为了解决“多类型”的问题(比如一个学生记录包含id,name等不同基本类型的组合,单个int,string无法满足,所以才出现了struct)。类是组成面向对象编程的基础,功能远远大于结构。