【C/C++】struct与class的区别?面向对象的三大特征?
1、C++中struct与class的区别?
答:C++被称为“C with class”,所以说C++中class是非常重要,与class类似的一个结构就是struct。C++中struct可以当结构体去使用,还可以用来定义类,和class定义类是一样的。区别在于下面几点:
-
默认的继承权限
struct默认是公有继承(public),class默认是私有继承(private) -
默认的访问权限
class中默认的成员访问权限是private的,而struct中则是public的。 -
大括号初始化
在C语言中,struct是一种数据类型,只能定义数据成员,不能定义函数,这是因为C语言是面向过程的,面向过程认为数据和操作是分开的,所以C语言中的struct可以直接使用大括号对所有数据成员进行初始化 。
在C++中对struct的功能进行了扩展,struct可以被继承,可以包含成员函数,也可以实现多态,当用大括号对其进行初始化需要注意:
(1) 当struct和class中