【问题标题】:Are C++ "Concepts" same as ObjectiveC "protocols" and Java "Interfaces"? [duplicate]C++“概念”是否与ObjectiveC“协议”和Java“接口”相同? [复制]
【发布时间】:2015-08-18 05:32:46
【问题描述】:

C++“概念”在哪些方面比 ObjC 协议和 Java 接口更好或更差?

【问题讨论】:

    标签: java c++ objective-c c++11


    【解决方案1】:

    首先,这个答案比我的要好: How do Concepts differ from Interfaces?

    无论如何,在我检查重复之前我的原件:

    这有点像问一条面包比快艇好还是差。

    C++“概念”适用于在通用类型函数和类(模板)中使用的类型参数的约束。

    协议和接口指定采用/实现类(通用或其他)必须实现的方法。

    C++ 已经有一个类似于协议和接口的类,它们是只包含纯虚函数的类:

    https://en.wikipedia.org/wiki/Virtual_function#Abstract_classes_and_pure_virtual_functions

    我可以看到混乱的根源;在最抽象的层面上,概念、接口和协议都与指定行为有关,同时避免实现;但是它们在语言中的使用位置是根本不同的,因此您无法进行真正的比较。

    另外,你的问题急需重写,以便得到真正的答案,而不是编辑、挥手、放牛或养羊,不管我在做什么。

    此外,概念 还处于开发的早期阶段,仅处于 C++ 标准的提议阶段:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4361.pdf

    “现在这只是一个概念,但我想我可以弄到钱把它变成一个概念,然后再把它变成一个想法。” -- 安妮·霍尔

    【讨论】:

      猜你喜欢
      • 2017-07-09
      • 2016-08-30
      • 2013-10-18
      • 1970-01-01
      • 2018-09-07
      • 2014-04-03
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多