c – 当我们已经有类和接口时,为什么设想概念(通用程式设计)?

c – 当我们已经有类和接口时,为什么设想概念(通用程式设计)?,第1张

概述Also on programmers.stackexchange.com: 我理解STL的概念必须存在,而实际上只有文档(人类)的概念并不能被翻译成C代码,所以称之为“类”或“接口”是愚蠢的,但是当给予机会扩展语言以适应概念时,为什么他们不简单地修改类和/或引入接口的功能? 不是一个非常类似于接口的概念(100%抽象类没有数据)?通过看,它似乎在接口上缺乏对公理的支持,但也许公理可以被引入到C的 Also on programmers.stackexchange.com:

我理解STL的概念必须存在,而实际上只有文档(人类)的概念并不能被翻译成C代码,所以称之为“类”或“接口”是愚蠢的,但是当给予机会扩展语言以适应概念时,为什么他们不简单地修改类和/或引入接口的功能?

不是一个非常类似于接口的概念(100%抽象类没有数据)?通过看,它似乎在接口上缺乏对公理的支持,但也许公理可以被引入到C的接口中(考虑到C中接口的假设采用接管概念),不可能吗?我认为甚至自动概念可以很容易地添加到这样的C界面(自动接口LessthanComparable,任何人?).

不是一个concept_map非常类似于适配器模式?如果所有方法都是内联的,则适配器本质上不存在于编译时间之外;编译器简单地用内联版本替换对接口的调用,在运行时直接调用目标对象.

我听说过一些名为静态面向对象编程的东西,它基本上意味着有效地重用通用编程中面向对象的概念,从而允许使用大多数OOP的能力,而不会导致执行开销.为什么没有进一步考虑这个想法?

我希望这一点很清楚.如果你认为我没有,我可以重写这个;只是让我知道.

解决方法 OOP和泛型编程之间有很大的区别.

在OOP中,当您设计课程时,您会看到您认为有用的界面.完成了

另一方面,在通用编程中,只要类符合给定的一组要求(主要是方法,还有内部常量或类型),那么它符合账单并可能被使用.概念提案是关于形式化这一点,所以在检查方法签名时可能会发生检测,而不是实例化方法体.它还使检查模板方法更容易,因为如果概念不匹配,某些方法可以被拒绝,无需任何实例化.

概念的优点是,您不会受益于Predestination,您可以从library1中选择一个类,从library2中选择一个方法,如果适用,则为黄金(如果没有,则可以使用概念地图).在OO中,您需要每次写一个成熟的适配器.

你是对的,两者似乎相似.差异主要是关于绑定的时间(以及Concept仍然具有静态调度而不是类似于接口的动态调度的事实).概念更加开放,因此更易于使用.

总结

以上是内存溢出为你收集整理的c – 当我们已经有类和接口时,为什么设想概念(通用程式设计)?全部内容,希望文章能够帮你解决c – 当我们已经有类和接口时,为什么设想概念(通用程式设计)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1233094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存