When is using a struct more reasonable than using a class in C++?
本问题已经有最佳答案,请猛点这里访问。
我一直在阅读qt creator的源代码。在使用C++时,使用EDOCX1 0比使用EDCOX1 1Ω更合适?
这纯粹是个人偏好或编码约定的问题。EDCOX1、1和EDCOX1(0)本质上在C++中是相同的,差异是默认的访问说明符和基类是EDOCX1,3为EDCOX1,1,EDCX1,4,EDCOX1,0,4。
例如,在这里,
1 2 3 | class Foo {}; struct Bar : Foo {}; class Bar : public Foo {}; |
这里也是:
1 2 3 | class Foo {}; struct Bar : private Foo {}; class Bar : Foo {}; |
这里也是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Bar { int n; // private public: double x; // public }; struct Bar { private: int n; public: double x; }; |
此外,您可以将
我把
除了默认访问(struct=>public,class=>private),没有什么区别。对于可读性,我更喜欢在定义普通的旧C结构(仅数据)时使用struct,或者当我的大多数成员/方法是公共的时使用struct。
当它是普通的、没有任何功能的旧数据时,它可能更适合。在C++中,EDCOX1与0的EDCX1和1的唯一区别在于EDCOX1的1个成员默认为EDCOX1×3,而不是EDCOX1,4为EDCOX1,0。