C++中为了兼容C语言而保留了C语言的struct关键字,并且加以扩充了含义。
在C语言中,struct只能包含成员变量,不能包含成员函数。
在C++中,struct类似于class,既可以包含成员变量,也可以包含成员函数。
不同点
C++中的struct和class基本是通用的,但是:
- class中的类成员默认为私有,而struct中的成员默认是公有。
- class的基础默认私有,而struct的继承默认公有。
- class可以用于定义模板参数,struct则不能。
使用习惯
struct通常用来定义一些POD。
POD是C++定义的一类数据结构概念,比如int float等都是POD类型的。
而class用于定义一些非POD对象,面对对象编程。