std :: vector指针 - 表达式必须具有类类型错误

时间:2015-12-24 01:07:41

标签: c++ pointers vector

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

1 个答案:

答案 0 :(得分:4)

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