-
在C中struct只单纯的用作数据的复合类型,也就是说,在结构体声明中只能将数据成员放在里面,而不能将函数放在里面。而在C++中class理论上也是结构体,即也是复合数据类型,但成员不仅限于数据,含可以包含函数成员等。
-
C++是在C语言的基础上,进行了很多功能扩展,其中最重要的一条,就是引入了class。引入class的最大好处就是,使C++可以进行面向对象编程。面向对象编程,简称OOP,具备三个要素:封装性、继承性、多态性。诚然,struct可以实现封装性,但是,struct不能进行继承,更不能进行多态功能的实现。class可以进行类的继承,并且,其对虚函数的支持,使C++的类具有多态的性质。因此,引入class,是C++在C语言基础上重要的拓展,这是struct难以实现的。
-
另外,二者的默认的访问控制属性也不同,C中struct默认是均是公有类型(public)且不能修改,C++中class默认是私有类型(private),且可以手动修改成其他类型。
链接:https://leetcode-cn.com/circle/discuss/3xmp7u/
来源:力扣(LeetCode)