這裏指針的向量是我的問題:迭代器不正確地取消引用
我有一個用於跟蹤子控件的std::vector<AguiWidgetBase*>
。
我有這兩個函數返回的迭代器:
std::vector<AguiWidgetBase*>::const_iterator AguiWidgetBase::getChildBeginIterator() const
{
return children.begin();
}
std::vector<AguiWidgetBase*>::const_iterator AguiWidgetBase::getChildEndIterator() const
{
return children.end();
}
然後我用這樣的:
for(std::vector<AguiWidgetBase*>::const_iterator it = box->getChildBeginIterator();
it != box->getChildEndIterator(); ++it)
{
it->setText("Hello World");
}
,我得到這些錯誤:
Error 3 error C2039: 'setText' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>' c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\main.cpp 112
Error 2 error C2839: invalid return type 'AguiWidgetBase *const *' for overloaded 'operator ->' c:\users\josh\documents\visual studio 2008\projects\agui\alleg_5\main.cpp 112
爲什麼給我這些錯誤?
由於
如果Agui像大多數其他GUI框架一樣工作,那麼這些小部件就會自毀。這將是一個非常糟糕的想法,使用'shared_ptr'。但它取決於Agui,無論如何。 – 2010-10-13 02:13:58
你是對的,他們正在自我毀滅 – jmasterx 2010-10-13 02:16:02