gpt4 book ai didi

c++ - 如何在 C++ 中引用 "owner class"?

转载 作者:行者123 更新时间:2023-11-30 03:12:34 24 4
gpt4 key购买 nike

我有这样的代码:

template<class T>
class list
{
public:
class iterator;
};

template<class T>
class list::iterator
{
public:
iterator();
protected:
list* lstptr;
};

list<T>::iterator::iterator()
{
//???
}

我想让 list::iterator 的构造函数使 iterator::lstptr 指向调用它的列表。即:

list xlst;
xlst::iterator xitr;
//xitr.lstptr = xlst

我该怎么做?

另外,我是否正确引用了我的迭代器构造函数,或者我应该这样做:

template<class T>
class list<T>::iterator
{
public:
list<T>::iterator();
protected:
list* lstptr;
};

最佳答案

您可以将列表传递给迭代器的构造函数:

list xlst;
list::iterator xitr(xlst);

或者,您可以制作一个迭代器工厂函数:

list xlst;
list::iterator xitr = xlst.create_iter();

在工厂函数的情况下,create_iter() 函数可以使用 this 来引用封闭列表。

关于c++ - 如何在 C++ 中引用 "owner class"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875578/

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