В Стандартной библиотеке C++ для реализации полиморфизма в основном используются шаблоны вместо наследования. (Некоторые причины см. в этой теме.) Однако есть некоторые части стандартной библиотеки, которые используют наследование, например
библиотека диагностики, где все исключения, генерируемые стандартной библиотекой, наследуются от std::Exception,
и библиотеки ввода/вывода, которая содержит дюжину классов, связанных между собой иерархией наследования, которая также имеет алмаз.
Почему лишь несколько компонентов, подобных приведенным выше, были разработаны с использованием наследования, а не шаблонов?
В Стандартной библиотеке C++ для реализации полиморфизма в основном используются шаблоны вместо наследования. (Некоторые причины см. в этой теме.) Однако есть некоторые части стандартной библиотеки, которые используют наследование, например [list] [*]библиотека диагностики, где все исключения, генерируемые стандартной библиотекой, наследуются от std::Exception, [*]и библиотеки ввода/вывода, которая содержит дюжину классов, связанных между собой иерархией наследования, которая также имеет алмаз. [/list] Почему лишь несколько компонентов, подобных приведенным выше, были разработаны с использованием наследования, а не шаблонов?
В Стандартной библиотеке C++ для реализации полиморфизма в основном используются шаблоны вместо наследования. (Некоторые причины см. в этой теме.) Однако есть некоторые части стандартной библиотеки, которые используют наследование, например...
Как вы можете видеть ниже, у меня есть суперкласс (Article) и два подкласса. Я хочу, чтобы каждый из подклассов имел статический массив, в котором будут храниться все его объекты.
абстрактный класс Статья { общественная статическая $articles =...
Большая часть Стандартной библиотеки C++ использует шаблоны, а не наследование для реализации полиморфизма. Это хорошо известная тема о том, почему¹. И на эту тему есть сотни видеороликов и сообщений в блогах.
Однако, что касается частей стандартной...
Большая часть Стандартной библиотеки C++ использует шаблоны, а не наследование для реализации полиморфизма¹. Это одна из хорошо известных тем о том, почему². И на эту тему есть сотни видеороликов и сообщений в блогах.
Однако, что касается частей...