@www.helpsoff.com.cn
谢谢你的意见,但是不采纳。原因有3点经历:
1、ASSERT判断函数参数合法性,调试时会帮了很大的忙;
2、if判段函数参数合法性,是健壮性的一部分;
3、ASSERT和if 合在一起,不觉得有任何不妥,且ASSERT不出现在Release中,这正是需要的。
可能涉及到的一个争论是,检测参数合法形是调用者,还是被调用者的责任?
C/C++的主流是调用者保证参数的合法性,被调用者不检测参数合法性,这就是为什么认为,只要ASSERT,不需要if了。
strcpy(szBuf, NULL)之所以让一个程序崩溃也是这个原因,但是为什么要让它崩溃?能够不崩溃,继续执行岂不是更好吗?
@www.helpsoff.com.cn
我在Imperfect C++中看到过相同的言论。
不过我的应用是,常常用ASSERT检测参数的合法性,ASSERT之后,当然还要if一把了,对于ASSERT和if不要放在一起这种观点,我不是很认同,我觉得放在一起很好用的。
另外,在Release下,ASSERT没了,但是if留下了,这是需要的效果。
@陈梓瀚(vczh)
模式二确实很OOP,不过我接触过的项目,基本上是用关联来替代聚合,我的经历也告诉我,模式一更为简单,更容易控制。
模式二看上去很美,却胶合层太厚重,冗余的接口带来负担,要变通也困难。
聚合的本质就是一种强耦合,看上去漂亮而已吧。
为什么都喜欢留着英文?一跳一跳的,觉得不方便阅读啊
谢谢。
后来我自己写了个解析简单XML文件的代码。
可以几行之内,完成析出XML文件里面的文本数据(数组),到一个vector<struct>的机器内码,很简单,还行。
@星姐姐
上面的姐姐啊,谢谢啦。但开水烫衣服会皱的,烫内衣袜子还成
我穿的都是涤纶的运动服,全棉的夏天穿粘身不舒服。
要有大于0,小于0,等于0的返回值啊,怎么才true false呢?
Return Value
The return value for each of these functions indicates the lexicographic relation of string1 to string2.
Value Relationship of string1 to string2
< 0 string1 less than string2
0 string1 identical to string2
> 0 string1 greater than string2