私自身のイテレータを実装するために、私は次のようなものを実装したいと思います:
class MyClass :
{
public:
class MyIterator1 {;};
class MyIterator2 {;};
class MyIterator3 {;};
};
これらのイテレータはいくつかの共通の動作を共有するため、と呼ばれる基本イテレータから継承する方がよいでしょうMyBaseIterator
。しかし、私MyBaseIterator
は実装の詳細として考えています。ユーザーはMyClass::MyBaseIterator
直接使用すべきではありません。次は大丈夫ですか:
class MyClass :
{
protected:
class MyBaseIterator;
public:
class MyIterator1 : public MyBaseIterator {;};
class MyIterator2 : public MyBaseIterator {;};
class MyIterator3 : public MyBaseIterator {;};
};
から派生したメンバーは、保護されMyBaseIterator
ている場合でもユーザーが利用できますか?MyBaseIterator