C++学习(四六零)C++类和结构体的关系

这篇博客探讨了C++中struct与C中的struct的异同。相同点在于,C++的struct可以包含成员函数,支持继承和多态。不同点主要体现在默认访问权限上,struct的成员和继承默认为public,而类则是private。此外,struct在模板参数定义中不等同于class,且在集合操作中,struct可能需要装箱拆箱,影响效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)。类是组成面向对象编程的基础,功能远远大于结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值