私はこのようなコードを持っている:C++で "owner class"を参照する方法は?
template<class T>
class list
{
public:
class iterator;
};
template<class T>
class list::iterator
{
public:
iterator();
protected:
list* lstptr;
};
list<T>::iterator::iterator()
{
//???
}
私はそれから呼ばれるのリストにiterator::lstptr
ポイントを作るためにlist::iterator
のコンストラクタを作りたいです。私:
list xlst;
xlst::iterator xitr;
//xitr.lstptr = xlst
どうすればよいですか?
そしてまた、私は私のイテレータコンストラクタ右を参照していますか、私はこのような何かを行う必要があります。
template<class T>
class list<T>::iterator
{
public:
list<T>::iterator();
protected:
list* lstptr;
};
2番目のブロックでコメントアウトしたコードを試しましたか?私はC++を知らないので(Cのみ)、それは私がやることのように見えます。 – hhafez
リストを :: iterator()から変更すると、イテレーターの最終バージョンが正しくなります。 - > iterator();歓声 –