Java等语言明确使用interface关键字来表示接口.使用Java之后,这个概念似乎足以让我证明一个关键字可以强制执行这个概念.
当然,可以使用纯虚拟类并将其标记为接口.但是,这个关键字似乎非常有用,并且与纯虚拟类不同,因此非常有用.也许它被包含在C++ 0x中?
Law*_*Dol 24
因为C++允许多重继承,并且因为接口是一个抽象类,其所有成员也是抽象/虚拟的,所以C++不需要它 - 类可以简单地"扩展"多个其他类,其中任何一个都可能是纯虚拟的(抽象).
另一方面,Java和C#不允许使用MI,因为这些语言的设计者认为MI会产生比解决的问题更多的问题.但是对象仍然需要"成为"许多东西(OOP是一种关系),所以接口提供了一种机制,允许对象成为很多东西,而不继承多个实现 - 保留宝宝,但扔掉了洗澡水.
添加"interface"关键字会增加实现的复杂性,而无需添加任何真正有用的功能; 它会复制现有的功能.正如其他人所说,它只是一个纯粹的虚拟课程.Java和C#必须有"接口"才能获得C++已有的功能.从哲学上讲,C++旨在使程序员能够编写好的软件,而不是阻止程序员编写不良软件.根据我的经验,对抗MI的喧嚣被夸大了.白痴滥用它,就像他们滥用一切,而不是把白痴归咎于白痴,人们指责工具.
C++ 的早期面向对象特性长期以来一直被忽视,因为它已经作为一种多范式语言朝着更有趣的方向发展。十多年来的主要焦点一直是模板及其含义,特别是在标准库中。是的,使用关键字程序会更具可读性interface。override如果存在与new基类方法同名的方法修饰符(类似于 C#),它们也会更容易维护。但对于现代 C++ 用户以及那些为语言设计做出贡献的人来说,这些都不是有趣的问题。OO 功能足够了,但不是很好,并且几乎没有在标准库的“较新”(1992 年之后)部分中使用,这在某些方面可以作为良好风格的指南。
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |