多一条“粗心时看看这样

编码过程中由于粗心造成的错误,尤其是竟然还能运行的错误,是很让人费脑袋的。
所以我试着编一套“粗心时看看这样”的“文集”,当产生莫名的错误时从“文集”里找找,看能否解决。。当然,要编这样一套文集,需要日积月累啊,同样编完之后没有些日月估计也看不完吧。反正记一条是一条了。

今次的一条是:函数的参数问题。
在今次的A*算法的二叉堆实现中,在BTree中有个ExchangeNode()的函数,它的功能为交换两个节点的位置,同时返回两个节点交换后的位置信息,具体原型如下:ExchangeNode(Node*node1, Node* node2, PosType& node1Pos,PosType&node2Pos)。但在使用过程中,也就是本次在BTree::DelNode()中,使用的两次ExchangeNode竟然都是将获取的新位置信息写反了,也就是写成了:ExchangeNode(node1,node2,node2Pos,node1Pos),正确写法为:ExchangeNode(node1,node2,node1Pos,node2Pos).

这样的函数应该还会遇到,我一定会谨慎。

发表评论

邮箱地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *