Зачем использовать базовые классы для узлов списка/дерева в стандартной библиотеке C++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Зачем использовать базовые классы для узлов списка/дерева в стандартной библиотеке C++?

Сообщение Anonymous »


В libstdc++ и libc++ внутренние узлы для списков (например, list и forward_list) и других деревьев состоит (как минимум) из двух частей: базового класса узла; и сам класс узла. Например, вместо:

struct sl_full_node { sl_full_node *p; целое значение; }; ...мы увидим что-то вроде:

struct sl_node_base { sl_node_base *p; }; структура sl_node: sl_node_base { целое значение; }; Простой, самодостаточный пример этой идиомы можно найти в предложении об односвязном списке от 2008 года здесь. Каковы преимущества такого подхода?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»