标题:华为又出变态面试题!大家请看以下代码 在看懂的同时 修改错误!
只看楼主
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
顺便帮我问问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]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-20 17:44
52316wsf
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-6-16
得分:0 
看晕了!
2007-12-22 10:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-191785-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.275489 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved