首页 > 编程语言 > 详细

C++中struct与class的区别

时间:2020-05-12 10:32:54      阅读:45      评论:0      收藏:0      [点我收藏+]

如果没有多态和虚拟继承,在C++中,struct和class的存取效率完全相同,存取class的数据成员与非虚函数效率和struct完全相同,不管该数据成员是定义在基类还是派生类。

class的数据成员在内存中的布局不一定是数据成员的声明顺序,C++只保证处于同一个access section的数据成员按照声明顺序排列

在C++中,class和struct做类型定义是只有两点区别:

1.默认继承权限不同,class继承默认是private继承,而struct默认是public继承
2.class还可用于定义模板参数,像typename,但是关键字struct不能同于定义模板参数

C++保留struct关键字,原因:

1.保证与C语言的向下兼容性,C++必须提供一个struct
2.C++中的struct定义必须百分百地保证与C语言中的struct的向下兼容性,把C++中的最基本的对象单元规定为class而不是struct,就是为了避免各种兼容性要求的限制
3.对struct定义的扩展使C语言的代码能够更容易的被移植到C++中。

通常情况下,大部分数据设为private,因此使用class情况比较多;
但是有时作为接口数据(public)或作为纯数据结构时,使用struct更方便,目的更明确。

参考链接:
https://blog.csdn.net/summer00072/article/details/80932376

C++中struct与class的区别

原文:https://www.cnblogs.com/chendeqiang/p/12861580.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!