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)。类是组成面向对象编程的基础,功能远远大于结构。
这篇博客探讨了C++中struct与C中的struct的异同。相同点在于,C++的struct可以包含成员函数,支持继承和多态。不同点主要体现在默认访问权限上,struct的成员和继承默认为public,而类则是private。此外,struct在模板参数定义中不等同于class,且在集合操作中,struct可能需要装箱拆箱,影响效率。
1178

被折叠的 条评论
为什么被折叠?



