繁体   English   中英

由于私有继承,迭代器无法访问

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM