c – 无法将列表迭代器强制转换为对象
发布时间:2020-12-16 10:43:49 所属栏目:百科 来源:网络整理
导读:我收到错误: error C2682: cannot use 'dynamic_cast' to convert from 'std::_List_iterator_Mylist' to 'UserBean *' 执行时: listUserBean * userBeans = getUserBeans();for(listUserBean::iterator i = userBeans-begin(); i != userBeans-end(); i++
我收到错误:
error C2682: cannot use 'dynamic_cast' to convert from 'std::_List_iterator<_Mylist>' to 'UserBean *' 执行时: list<UserBean> * userBeans = getUserBeans(); for(list<UserBean>::iterator i = userBeans->begin(); i != userBeans->end(); i++) UserBean * newUser = dynamic_cast<UserBean*>(i); 我做错了什么,或者你不能将迭代器项转换为对象? 解决方法
有时候迭代器被实现为容器项的原始指针,但更多时候它们根本就不是指针,所以不要那样对待它们.访问迭代器引用的项的正确方法是取消引用迭代器,例如:
UserBean &newUser = *i; 要么: UserBean *newUser = &(*i); 迭代器通常会覆盖 – >运算符,以便在迭代器引用实际对象实例(您的实际对象实例)而不是指向对象实例的指针的情况下,您可以访问引用项的成员,例如: i->SomeMemberHere (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- oracle – pl/sql存储过程:参数名称与列名称相同
- c# – 在ASP.NET Web API2 Web服务中实现OAuth访问令牌
- c# – CA2000:Microsoft.Reliability:在对所有引用超出范
- 【COCOS2DX-LUA 脚本开发之十一】C/C++与Lua之间进行数据函
- 如何使用flex或flash播放MOV,M4V,M4A文件?
- 在Swift中继承UIView时使用initWithFrame的问题
- c# – 如何在应用程序中向PowerShell公开功能
- AJAX 简单的GET请求(W3Cschool)
- FlashPlayer的安全性比上不足比下有余 *未必是真实的数据
- C#技能 – 哪个更容易,IOS还是Android开发?