我创建了一个由私有继承组成std::deque
的新类,即
class B : private std::deque<A>
{ ... };
在我的源代码中我尝试使用B的迭代器,即
B::iterator it
编译器错误是
error C2247: 'std::deque<_Ty>::iterator' not accessible because 'B' uses 'private' to inherit from 'std::deque<_Ty>'
所以问题是,如何才能使迭代器可访问?
答案 0 :(得分:13)
你必须推广这个迭代器类。
在公共区域使用使用关键字。
class B : private std::deque<A>
{ ...
public:
using std::deque<A>::iterator;
};
对于其他类型以及来自实现基类的其他函数也是如此。