std::vector pointer-表达式必须有类类型错误

std::vector pointer - expression must have class type error

本文关键字:错误 类型 vector pointer- 表达式 std      更新时间:2023-10-16

我正试图基于一个函数创建一个迭代器,我正在调用该函数来返回指向实例化对象中向量的指针,但我遇到了一个错误,即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是一个派生自GUITItem基类的类。有什么想法吗?

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