换句话说,在旧时代,当谈到C age时,struct没有构造函数,析构函数等.但是,现在(C++时代),struct已经扩展得更像类了.
那么,C++设计者的目的是什么?
详细地说,为什么在与c相比时将构造函数,析构函数,继承,成员函数添加到struct中?
这对于C/C++ Struct vs Class来说不是一个重复的问题,因为这里的主要观点在于设计目的,而不是结构和类之间的区别.
它也不重复为什么C++中都存在struct和class?,我没有看到在上述问题下扩展struct的目的.
让我们探讨其他可能的设计方案,由juanchopanza在评论中列举.
去掉
struct
这种选择的一个优点是更少混淆和不存在这样的问题.
缺点是与C的显着不兼容性,我相信与C的兼容性仍然是C++的设计目标之一.
不介绍
class.
我认为这只是引用新关键字.请参阅评论以获得其他解释.
同样的事情,两个名称产生的优点也更少.
缺点是与常见的面向对象术语不匹配.
使
struct意思与C相同
Stoustrup的引用来自:http://www.drdobbs.com/c-theory-and-practice/184403384
最初引自:Bjarne Stroustrup.C++的设计与演变(Addison-Wesley,1994).
也许我们可以使用两套规则,但是单个概念可以提供更平滑的功能集成和更简单的实现.我确信,如果struct对用户和类来说意味着"C和兼容性"意味着"C++和高级功能",那么社区将陷入两个不同的阵营,很快就会停止通信...只有一个概念会支持我的从"传统的C风格编程"到数据抽象,再到面向对象编程的平滑过渡的想法.只有一个概念会支持"你只为你使用的东西付费"的理念.
他后来补充说:
我认为保持结构和类相同概念的想法使我们免于支持我们现在拥有的昂贵,多样化和相当不同的功能集的类.换句话说,"一个结构是一个类"的概念已经阻止了C++逐渐变成一个具有断开的低级子集的高级语言."
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |