精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
服务方向
联系方式
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究。点名“简易百科”和“闲暇巴”盗用锐英源原创内容。
使用stl时,有些编译错误不能直接对应到源代码上,比如最近遇到的:
e:\program files (x86)\microsoft visual studio 10.0\vc\include\utility(163): error C2439: “std::_Pair_base<_Ty1,_Ty2>::second”:
未能初始化成员
双击是跳转到了STL代码文件里,和自己写的代码没关联。这就影响到了解决。
这时候观察前后的编译错误,发现有
error C2440: “初始化”: 无法从“DAPIDX *”转换为“_tagDapF *”
注意到有这样的类型转换错误,就特意按这个类型的语句,发现如下:
mmapCon.insert(multimap<float,DAPF*>::value_type( f3, pdapf));
把上行里的map的值对象修改正确,问题解决。这是刚才修改代码,在map类型定义地方改了值类型,但是map对象使用时,没有对所有代码进行修改,有遗漏导致了错误。
用好查找和搜索功能,遇到问题耐心排查,才能进步。想精通VC++,找锐英源,有专业高端的培训和在线教育。