为了实现我自己的迭代器,我想实现这样的东西:
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
?