C与C++中的struct
“说说struct吧”
“struct是一个结构体,通常是用来实现某种数据结构用的。”
“还有呢?C和C++中的结构体有什么不同?C++中struct和class有什么区别?”
“呃.........”
乍一看,struct想必都见过,可一问细节,不熟悉的话着实答不上。
C和C++中的struct
C:在C中,struct扮演的是用户自定义的数据类型,只能由已定义的数据类型(可以是另一个自定义的struct)组成。
C++:在C++中,struct扮演的是抽象的数据类型,可以由数据类型和成员函数组成。
C++中的struct是为了兼容C而保留的,如果程序不需要与C兼容,不推荐使用struct。
C中常用的2种方式:
C++中的使用方式:
C++是兼容C的,在C++中使用C的struct也是可以的。
C++中struct和class的区别
在C++中struct同样拥有public、protected、private访问权限,同样拥有成员函数,甚至同样拥有构造函数,还可以继承。那么struct和class有何区别?
是的,上面的例子没有体现继承,因为区别就在继承,struct的默认继承为public,而class的默认继承为private。如图: