2015-08-18 2 views

ответ

4

Прежде всего, этот ответ лучше, чем у меня: 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

«Сейчас это только понятие, но я думаю, что я могу получить деньги, чтобы сделать это в концепцию, а затем превратить ее в идею ». - Annie Hall

Смежные вопросы