结构体是为能够保存不同类型的数据而存在的,因为数组只能够保存一种数据类型,而在平时的编程中我们需要用到不同数据类型的一个整体结构,这时就要用到一个新的数据类型——结构体,来保存这些不同的数据类型的数据的集合。
C语言的结构体中只允许定义数据成员,不允许定义函数成员,C语言没有访问控制概念,全部成员是公有的;C++为C语言的结构体引入了成员函数、访问权限控制、继承、包含多态等面向对象的特性。
C++中结构体是一种特殊类型的类,和类一样有数据成员、函数成员,可以有自己的构造函数和析构函数,可以控制访问权限,可以继承,支持多态等。
C++中结构体与类的区别:
唯一区别是结构体和类具有不同的默认访问控制属性:在结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型;在类中,对于未指定任何访问控制属性的成员,其访问控制属性为私有类型。
C++为了保持和C程序的兼容,保留了struct关键字,并规定结构体的默认访问控制权限为公有类型。