【发布时间】:2009-11-24 11:20:20
【问题描述】:
这是我的课程:
父类,父对象
DerivedClass(继承自 ParentClass)、DerivedObj(继承自 ParentObj)。
ParentClass 有一个受保护的成员:
std::vector
DerivedClass 仅将 DerivedObj* 对象分配给该向量。
问题是:
当我使用 ParentClass 时,我想用类型的迭代器访问它的向量对象:
std::vector::const_iterator
当我使用 DerivedClass 时,我想用类型的迭代器访问它的向量对象:
std::vector::const_iterator
我怎样才能让它工作?
【问题讨论】:
-
您不应该在 STL 容器中使用指针元素,除非您 100% 确定没有人会修改它(例如使用 std::sort...)! STL 容器确实具有值语义,使用指针复制从来都不是一件好事!
-
我没有看到
std::sort的问题...我宁愿谈论::erase()方法或类似的东西:/ -
@fmuecke:您必须将指针视为指针,正确处理所有权问题,并区分“复制”和“克隆”。 (或浅拷贝与深拷贝)。
标签: c++ class inheritance