赞
踩
谈到struct和class的区别,我们的第一反应就是struct也可以和class一样拥有多态,继承的特性,最大的不同只是他们的默认权限不同,struct默认访问权限是public,class默认权限是private,但其实还有一点:memory layout可能不同。
struct(没有使用虚函数)的数据成员声明顺序和这些数据成员在内存中的offset一定是一致的。而class只有在POD原则(Plain Old Data)下才与struct的memory layout一致。
那么问题来了什么是满足POD原则的class?
POD数据类型主要用来解决C++与C之间数据类型的兼容性,以实现C++程序与C函数的交互。
C++11中把POD分为了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。