都是默认参数惹的祸

来源:互联网 发布:万方中国机构数据库 编辑:程序博客网 时间:2024/05/22 00:34

今天对以前的一些代码进行重构, 搞了个笑话,低级错误。。。

以前在类里面写了个函数, 叫bool A( B b),后来功能需要想添加一个参数,类型C*,

于是变成了bool  A(B b, C* c), 后来考虑到以前对这个函数的调用都是只有第一个参数的,于是又给第二个参数加了默认值 0 , bool  A( B b, C* c = 0);

但是在调用的时候闹笑话了, 由于A 是放在if  中的, b又是一个含了几对括号的表达式,导致没看清括号的匹配,写成了 if ( A( b), c),编译通过, 调试发现c本来不是0, 一传入就"变" 0 了,

 

郁闷了半天!!!!!!!

 

以后代码风格要改改了。。。