[英]Iterator not accessible because of private inheritance
我创建了一个新的类,通过私有继承组成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>'
所以问题是,如何使迭代器可访问?
你必须推广这个迭代器类。
在公共部分使用关键字。
class B : private std::deque<A>
{ ...
public:
using std::deque<A>::iterator;
};
对于其他类型以及来自实现基类的其他函数也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.