class和struct用于定义类
定义:class默认开始为private成员,struct默认开始为public成员。
继承:class默认为private继承,struct默认为public继承。
class用于模板
class可用于模板用于表明类型名,此时等价于typename。
C语言风格struct
C++是兼容C语言的,C语言没有没有基于对象(OB)和面向对象(OO)的思想,只有抽象数据类型(ADT)。
如果要使C++ class的某部分数据有C风格那样,最好把这部分数据抽取出来成为一个独立的struct声明,但是不推荐继承,因为编译器支持的虚函数机制可能对class的布局做一些变化。组合,而非继承,才是推荐方法,这样才能保证C的空间布局。