C ++“概念”与ObjectiveC“协议”和Java“接口”是否相同?

zak*_*een 2 c++ java objective-c c++11

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

Bas*_*Zen 5

首先,这个答案比我的要好: 概念与接口有何不同?

无论如何,我在检查公仔之前的原始照片:

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

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

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

C ++已经有了协议和接口的类似物,它们是仅由纯虚函数组成的类:

https://zh.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

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