struct是C原有的,C++为了兼容C而支持了struct。什么时候该用struct或者class没有明确的界限。
语法角度的区别:
- 默认继承权限不同。class是private,struct是public。
- 成员的默认访问权限不同。class是private,struct是public。
- struct不能作为模板参数,class可以。(这个有点不懂,为啥那个map的自定义排序可以用struct?)
参考:
- class与Struct 的区别
- Struct和Class的区别 - csdn
- 《深度探索C++对象模型》 第1章