函数的污染问题主要有以下几点:
1 传递地址和引用传参,在函数内部污染了外部的变量。
2 返回值不确定,有可能是运算结果,还有可能是错误和异常代码。
针对以上两个污染问题的解决方案:
1 用const修饰符修饰型参,做一次隐式类型转换,将参数转换成常量参数,使函数内部不能修改。
2 使用throw抛出异常,在函数调用处try..catch,使返回值确定为运算结果,而不是错误代码。
ok
1 传递地址和引用传参,在函数内部污染了外部的变量。
2 返回值不确定,有可能是运算结果,还有可能是错误和异常代码。
针对以上两个污染问题的解决方案:
1 用const修饰符修饰型参,做一次隐式类型转换,将参数转换成常量参数,使函数内部不能修改。
2 使用throw抛出异常,在函数调用处try..catch,使返回值确定为运算结果,而不是错误代码。
ok