我正在尝试基于要调用的函数创建迭代器,该函数用于返回实例化对象中向量的指针,但遇到expression must have class type错误。该错误指的是什么?

std::vector<GUIItem*> *childitems = dynamic_cast<GUIWindow*>(it_guilist)->GetChildItems();
std::vector<GUIItem*>::iterator it_childitems = childitems.begin();


该错误发生在childitems.begin()上。

我的GetChildItems函数如下:

std::vector<GUIItem*>* GUIItem::GetChildItems()
{
    std::vector<GUIItem*> * childitems = &m_childitems;
    return childitems;
}


我应该提到GUIWindow是从GUIItem基类派生的类。有任何想法吗?

最佳答案

childitems是指针,而不是对象。使用childitems->begin()

09-08 11:34