假设我想在类中为一个双向链表声明一些私有类成员变量,并尝试执行以下操作:
DoublyLinkedList<ShippingStatus> package;
DoublyLinkedListIterator<ShippingStatus> ship(&package);
我意识到第二行是不可能的,但有没有办法通过传入链表值作为参考来声明ship
变量?我已成功完成其他函数中的第二行,但这意味着每次调用这些函数时都会重置ship
,并且我希望我的迭代器的位置在程序运行时保存为“全局”。这就是迭代器类的构造函数看起来像
DoublyLinkedListIterator(DoublyLinkedList<ELT>* list) {
assert(nullptr != list);
_location = list->_header->next();
}
如果需要,我可以提供任何其他功能。
答案 0 :(得分:1)
也许您可以使用成员初始化列表:
template <typename ShippingStatus>
class MyClass
{
DoublyLinkedList<ShippingStatus> package;
DoublyLinkedListIterator<ShippingStatus> ship;
public:
MyClass(DoublyLinkedList<ShippingStatus> package) : package{ package }, ship{ &(this->package) } {}
};