@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