顺便帮我问问terence,我最后那个代码的Format里面使用的内联_format提不提倡?不提倡该怎么改正?
还有,用断言是没关系的。我之前就说过了,如果日期错误时间是自动归结到正确的时间里面的(比如我写一月五十日,就会变成二月十九日)。所以就算是在Release版本也不会有很大的问题。不过这不是关键,关键是Debug都通不过你怎么Release??设置了断言,至少如果参数不合格Debug是绝对过不了的。应该在传参之前就检验参数的正确性,而不是在函数内去检查甚至默默地改正(隐式纠正错误,隐藏代码Dug最主要的原因!!)。除非你的这个类是作为库使用的。如果是库使用,那么也应该准备两套库,一套不加载符号的用在最终的Release版
本上,最求效率的最大化,一套加载符号,使用断言甚至为函数设置壳函数去最大化的发现代码中的Bug,这才是正确的设置方法。隐式纠正错误是绝对要不得的!!
还有一种办法是异常。但一般只是在系统出现崩溃性错误(如内存分配失败),或者可以很快控制异常链(比如在一个函数内处理本函数扔出的所有异常)。这样的参数有效性检查,绝对不需要去劳动异常这种重型武器。我宁愿我在Dubug的时候不停地弹断言失败的对话框,然后在调用方校验参数,也不愿意为一个被扔出十万八千里的异常忙的手忙脚乱(你想想,调用方连参数都不检查,他会catch异常么??)
期待类的详细说明。包括各成员函数的功能叙述和接口。不给接口也可以但是要详细合理的说明。像上面写的, a.Format("yyyy-mm-dd HH:MM:SS");这种东西。我这两天专门去熟悉了原本一窍不通的ctime库,但是还没听说strftime可以这么写的!!这个连MFC的CTime都不支持的!
我会认真去写这个类。在这几天中,我收获了很多。希望可以获得更多的这种学习的机会。但是也希望双方的合作和耐心,谢谢。
[[italic] 本帖最后由 StarWing83 于 2007-12-20 19:27 编辑 [/italic]]
还有,用断言是没关系的。我之前就说过了,如果日期错误时间是自动归结到正确的时间里面的(比如我写一月五十日,就会变成二月十九日)。所以就算是在Release版本也不会有很大的问题。不过这不是关键,关键是Debug都通不过你怎么Release??设置了断言,至少如果参数不合格Debug是绝对过不了的。应该在传参之前就检验参数的正确性,而不是在函数内去检查甚至默默地改正(隐式纠正错误,隐藏代码Dug最主要的原因!!)。除非你的这个类是作为库使用的。如果是库使用,那么也应该准备两套库,一套不加载符号的用在最终的Release版
本上,最求效率的最大化,一套加载符号,使用断言甚至为函数设置壳函数去最大化的发现代码中的Bug,这才是正确的设置方法。隐式纠正错误是绝对要不得的!!
还有一种办法是异常。但一般只是在系统出现崩溃性错误(如内存分配失败),或者可以很快控制异常链(比如在一个函数内处理本函数扔出的所有异常)。这样的参数有效性检查,绝对不需要去劳动异常这种重型武器。我宁愿我在Dubug的时候不停地弹断言失败的对话框,然后在调用方校验参数,也不愿意为一个被扔出十万八千里的异常忙的手忙脚乱(你想想,调用方连参数都不检查,他会catch异常么??)
期待类的详细说明。包括各成员函数的功能叙述和接口。不给接口也可以但是要详细合理的说明。像上面写的, a.Format("yyyy-mm-dd HH:MM:SS");这种东西。我这两天专门去熟悉了原本一窍不通的ctime库,但是还没听说strftime可以这么写的!!这个连MFC的CTime都不支持的!
我会认真去写这个类。在这几天中,我收获了很多。希望可以获得更多的这种学习的机会。但是也希望双方的合作和耐心,谢谢。
[[italic] 本帖最后由 StarWing83 于 2007-12-20 19:27 编辑 [/italic]]