我正在尝试在 C++ 的双向链表中使用空对象模式,但我似乎找不到在保持代码干净的同时使用它的方法。
问题在于以下代码:
node->getNext()->setPrevious(node->getPrevious());
node->getPrevious()->setNext(node->getNext());
getNext
如果下getPrevious
一个NullNode
/上一个节点是nullptr
.
失败的用例 - 当节点是头节点时:
下面将设置第二个节点的前一个指针指向一个导致内存泄漏的 NullNode 对象。
node->getNext()->setPrevious(node->getPrevious());
我在这里想要完成的是保持 NOP 并保持代码清洁nullptr
和类类型比较,
任何建议将不胜感激!