Мне кажется, что идея состоит в том, чтобы отделить абстракцию списка от данных, которые он несет. Вам нужен ListNode
, только когда вы действительно хотите получить доступ к данным, все остальное можно сделать на абстрактном ListNodeBase
. Вот как я понимаю list anchor node doesn't carry a T with it
.
В космосе что-то есть. Шаблонные классы создаются для каждого типа, поэтому, если у вас есть несколько различных типов, используемых для T
, без ListNodeBase
вы будете создавать шаблонные копии всех операций для каждого типа, с ним - у вас нет, а LinkNode
наследует их, и требует только памяти для фактических данных. Похоже, что сэкономленное место в данном случае относится к фактическому размеру кода.