gpt4 book ai didi

c++ - 如何将迭代器变量声明为私有(private)成员变量?

转载 作者:行者123 更新时间:2023-11-30 05:02:59 24 4
gpt4 key购买 nike

假设我想在一个双向链表的类中声明一些私有(private)类成员变量,我正在尝试做类似的事情:

DoublyLinkedList<ShippingStatus> package;
DoublyLinkedListIterator<ShippingStatus> ship(&package);

我意识到第二行是不可能的,但是有没有办法通过传入链表值作为引用来声明 ship 变量?我已经成功完成了其他函数中的第二行,但这意味着每次调用这些函数时 ship 都会被重置,并且我希望在程序运行时“全局”保存迭代器的位置。这是迭代器类的构造函数的样子

DoublyLinkedListIterator(DoublyLinkedList<ELT>* list) {
assert(nullptr != list);
_location = list->_header->next();
}

如果需要,我可以提供任何进一步的功能。

最佳答案

也许你可以使用成员初始化列表:

template <typename ShippingStatus>
class MyClass
{
DoublyLinkedList<ShippingStatus> package;
DoublyLinkedListIterator<ShippingStatus> ship;
public:
MyClass(DoublyLinkedList<ShippingStatus> package) : package{ package }, ship{ &(this->package) } {}
};

关于c++ - 如何将迭代器变量声明为私有(private)成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49596605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com