Posted on 2008-11-15 00:55
S.l.e!ep.¢% 閱讀(2380)
評論(3) 編輯 收藏 引用 所屬分類:
C++
1. AutoLock
??? 在我的代碼中存在著許多
??? {
?????????? CAutoLock? lock(&sessionlock);
?????????? // do something
??? }
??? AutoLock固然方便,但代碼中很多這樣的括號,讓我真的很無語,有空要看下其它人是怎么寫的。
2. std::string, CString, char[]
??? 代碼需要在 win, unix 下都可以編譯,于是
??? windows非MFC人員: "用 char[], 如果用 std::string, 調(diào)用API, 要加上 .c_str()"
??? windowsMFC人員:?? "用CString, std::string 沒有 Format, 到處得加上 .c_str(), unicode 用CString 也方便"
??? unix人員:???????? "用 std::string 或 char[]"
??? 結(jié)果, 這三類人寫出了同一模塊, 寫出了三樣代碼, 唉~~~
Feedback
有很多括號?從博主提供的代碼里看到這么一對括號啊,不算什么壞味吧?
第二個(gè)問題確實(shí)是個(gè)問題,整理統(tǒng)一起來也很麻煩啊...
呵呵,AutoLock這種構(gòu)造時(shí)lock,析構(gòu)時(shí)unlock的方法其實(shí)很好么,boost::scoped_lock就是這樣的。個(gè)人覺得括號其實(shí)無所謂,至少這種方法比手動lock,unlock要優(yōu)雅很多,在異常安全方面也有保證。
第一種本身就是語言機(jī)制的靈活運(yùn)用.
個(gè)人認(rèn)為這樣很好。當(dāng)然如果覺得不妥,可以將其放到一個(gè)獨(dú)立的過程當(dāng)中去。
第二個(gè)問題就要看開發(fā)的靈活機(jī)動了。
一般來說會為一個(gè)軟件制作一個(gè)基礎(chǔ)庫,他不必是全面的,或者跨平臺的。等到了具體模塊的編碼時(shí),所見到的只是必須用的那個(gè)抽象。對于字符串處理這種完全可以根據(jù)自己的需求寫一個(gè)string類。至于他是用std::sring還是CString來實(shí)現(xiàn),這些并不重要,必要時(shí)對其進(jìn)行擴(kuò)展就是了。這總好過在后期對所有模塊代碼的整理和規(guī)范。