【发布时间】:2014-08-04 04:43:41
【问题描述】:
我有一个 std::list 的 std::unique_ptrs 到 Entity 对象。当我尝试循环遍历它们时,程序说列表中的项目不可访问。该列表是一个成员变量,声明为私有:list。
void EntityContainer::E_Update(int delta)
{
for (auto& child : children)
child->Update(delta);
}
Update() 是 Entity 的公共函数。但是,在编译时,我收到以下错误:
c:\program files (x86)\microsoft visual studio 11.0\vc\include\xmemory0(617):错误 C2248:
'std::unique_ptr<_Ty>::unique_ptr':无法访问在类'std::unique_ptr<_Ty>'中声明的私有成员
【问题讨论】:
-
尝试使用引用:
unique_ptr<Entity>& child : children。您正在尝试复制 unique_ptrs。
标签: c++ list unique-ptr