cpp中struct和class的区别

前言

我们这里讨论的是cpp下的struct。

首先cpp下的class和struct差不多,比如说都可以用public,private,protected等属性,还可以用成员函数,但还是有一些区别的。

默认数据属性不同

struct的默认数据是public的,而class默认的是private的。
carbon (1).webp

class的最后会编译错误。
struct1.webp

默认继承方式不同

struct默认是公有继承,class默认是私有继承。其实也挺好理解的,struct默认数据属性就是public的,难道继承后子类就变成了private了吗。

carbon (2).webp
最后class继承的还是会编译错误,因为是private继承,不能在类外访问类内数据。
struct2.webp

总结

我们为了数据安全一般定义类的时候用class,struct一般用户不同类型数据的一个集合。

THE END