可能重复:
C++中struct和class之间有什么区别
我完成了我的作业,并在谷歌上有不同的答案.有人说结构没有继承,有人说结构没有访问说明符,而有些人说它们都有.
那么有人可以澄清一下C和C++中结构和类之间的差异,以及C和C++中结构之间的区别.
Kei*_*son 23
在C++中,结构和类之间的唯一区别是结构成员默认是公共的,默认情况下类成员是私有的.
但是,作为一种风格问题,最好将struct关键字用于可能合理地构成C(或多或少POD类型)的结构,以及class关键字,如果它使用C++特定的功能,如继承和成员函数.
C没有课程.
C结构不能使用C++特有的功能.
编辑:
在C++ FAQ精简版,7.9质疑,有这样一段话:
所述构件和的基类
struct顷public默认,而在class,它们默认private.注意:你应该让你的基类明确public,private或者protected,而不是依赖于默认值.
struct并且class在功能上是等同的.好的,足够的那个干净的技术谈话.在情感上,大多数开发人员在a
class和a 之间做出了很强的区分struct.一个struct简单的感觉像一个露天堆放位在封装或功能的方式很少.一个class感觉像一个起居室和智能服务社会负责任的成员,一个强大的封装性障碍,一个定义良好的接口.既然这是大多数人已经拥有的内涵,那么你应该使用struct关键字,如果你有一个方法很少且有public数据的类(这些东西确实存在于设计良好的系统中!),否则你应该使用class关键字.
引用Stroustrup的"The C++ Programming Language",第4版,第16.2.4节:
S的这两个定义是可以互换的,但坚持一种风格通常是明智的.您使用哪种风格取决于环境和品味.我倾向于将struct用于我认为是"简单数据结构"的类.如果我认为一个类是"具有不变量的正确类型",我会使用类.构造函数和访问函数即使对于*struct*也非常有用,但作为简写而不是不变量的保证.
| 归档时间: |
|
| 查看次数: |
24803 次 |
| 最近记录: |