stl列出对象指针的迭代器

时间:2012-07-02 00:43:26

标签: c++ stl iterator

我正在阅读一些关于这个主题的帖子,我不知道,使用stl列表中的对象指针,当我想通过迭代器访问元素函数时,应用程序让我得到空指针的错误运行时间。有人会帮我吗?我感谢任何帮助。提前致谢。 这是代码的一部分:

  typedef std::list<Actor> listActors;
  listActors listactors = pMain->Actors();
  listActors::iterator iter = listactors.begin();

std::string nameactor;
nameactor = (*iter)->getName();//Here the app get a run time error of null pointer

2 个答案:

答案 0 :(得分:0)

不要投票这不是一个答案。但评论部分的时间太长了。
当问题得到适当更新时,我会删除。

此:

typedef std::list<Actor> listActors;

表示你的列表中充满了Actor 不是指向Actors的指针。

因此如果:

nameactor = (*iter)->getName();

编译,然后(* iter)是一个Actor对象,也是唯一可以使用的方法 - &gt;如果该类重载operator->()并返回一个NULL指针。

由于我们没有Actor的代码,我们无法告诉您出现了什么问题,或者更可能您在创建问题时出现了剪切粘贴错误。在这种情况下,我们也无能为力。

您需要编写我们可以编译并运行的代码来复制问题。他们将确切的代码粘贴到问题中。

答案 1 :(得分:0)

(*iter)->getName();错了。 您应该写iter->getName();(*iter).getName();