- C语言的struct不能有函数成员,而C++的struct可以有;
- C语言的struct中数据成员没有private、public和protected访问权限的设定,而C++的struct的成员有访问权限设定;
- C语言中的struct是没有继承关系的,而C++的struct却又丰富的继承关系。
C语言中的struct是用户自定义数据类型(User Defined Type),它是没有权限设置的,它只能是一些变量的集合体,虽然可以封装数据确不可以因层数据,而且成员不可以是函数。
为了和C语言兼容,C++中就引入了struct关键字。C++语言中的struct是抽象数据类型(ADT),它支持成员函数的定义,同时他增加了访问权限,它的成员函数默认访问权限是public。在用模板的时候只能写template<class Type>或template<typename Type>不能写template<struct Type>。