Đây là vấn đề của tôi:Iterator cho vector của con trỏ không dereferencing chính xác
Tôi có một std::vector<AguiWidgetBase*>
được sử dụng để theo dõi kiểm soát con.
Tôi có hai chức năng này để trở lại vòng lặp:
std::vector<AguiWidgetBase*>::const_iterator AguiWidgetBase::getChildBeginIterator() const
{
return children.begin();
}
std::vector<AguiWidgetBase*>::const_iterator AguiWidgetBase::getChildEndIterator() const
{
return children.end();
}
sau đó tôi sử dụng nó như thế này:
for(std::vector<AguiWidgetBase*>::const_iterator it = box->getChildBeginIterator();
it != box->getChildEndIterator(); ++it)
{
it->setText("Hello World");
}
và tôi nhận được các lỗi này:
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
Tại sao nó cho tôi những lỗi này?
Cảm ơn
Nếu Agui hoạt động giống như hầu hết các khung công tác GUI khác thì các tiện ích đó sẽ tự hủy. Sau đó nó sẽ là một ý tưởng thực sự xấu để sử dụng 'shared_ptr'. Nhưng nó phụ thuộc vào Agui, bất kể đó là gì. –
Bạn đúng, họ tự hủy – jmasterx