c – 由于私有继承而无法访问迭代器
发布时间:2020-12-16 10:32:10 所属栏目:百科 来源:网络整理
导读:我创建了一个新的类,通过私有继承组成std :: deque,即 class B : private std::dequeA{ ... }; 在我的源代码中,我尝试使用B的迭代器,即 B::iterator it 编译器错误是 error C2247: 'std::deque_Ty::iterator' not accessible because 'B' uses 'private' to
我创建了一个新的类,通过私有继承组成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; }; 对于其他类型以及来自实现基类的其他函数也是如此. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |