锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美日韩久久精品第一区,欧美伊人久久大香线蕉综合69,国产精品久久新婚兰兰http://www.shnenglu.com/snowball/category/6580.htmlonce setback,once inspiration,once self-awareness<br> 閲嶈鐨勬槸榪欎釜紓ㄧ粌榪囩▼錛岃屼笉鏄粨鏋滐紝瑕佺殑鏄綘綺楀.鐨勮吙錛岃屼笉鏄綘韜笂鑳岀殑閭h鐩愬反zh-cnTue, 20 May 2008 00:25:50 GMTTue, 20 May 2008 00:25:50 GMT60鍒濆鑰咃紝浣犲簲褰撳浣曞涔燙++浠ュ強緙栫▼http://www.shnenglu.com/snowball/archive/2008/04/06/46352.htmlsnowballsnowballSun, 06 Apr 2008 04:07:00 GMThttp://www.shnenglu.com/snowball/archive/2008/04/06/46352.htmlhttp://www.shnenglu.com/snowball/comments/46352.htmlhttp://www.shnenglu.com/snowball/archive/2008/04/06/46352.html#Feedback0http://www.shnenglu.com/snowball/comments/commentRss/46352.htmlhttp://www.shnenglu.com/snowball/services/trackbacks/46352.htmlJavaScript鏄笘鐣屼笂鏈鍙楄瑙g殑璇█錛屽叾瀹濩++浣曞皾涓嶆槸銆傚潑闂存祦浼犵殑閿欒鐨凜++瀛︿範鏂規硶涓鎶撳氨鏄竴澶ф妸銆傛垜鑷繁鍦ㄥ涔燙++鐨勮繃紼嬩腑涔熻蛋浜嗚澶氬集璺紝嫻垂浜嗕笉灝戞椂闂淬?/p>

銆銆涓轟粈涔堜細瀛樺湪榪欎箞澶氶敊璇璇?鍘熷洜涓昏鏈変笁涓紝涓鏄疌++璇█鐨勭粏鑺傚お澶氥備簩鏄竴浜涜憲鍚嶇殑C++涔︾睄鎬誨湪(涓嶇鏈夋剰榪樻槸鏃犳剰)鏆楃ず璇█緇嗚妭鐨勯噸瑕佹у拰鏈夎叮銆備笁鏄幇浠++搴撶殑寮鍙戝摬瀛﹀繀欏葷敤鍒頒竴浜涚妱瑙掓棶鏃殑璇█緇嗚妭(浣嗘敞鎰忥紝鏄簱璁捐錛屼笉鏄棩甯哥紪紼?銆傝繖浜涘叡鍚屽閫犱簡C++紺劇兢鐨勬暣浣撳績鎬佸拰鍝插銆?/p>

銆銆鍗曟槸絎竴鏉¤繕鏈繀鑳藉鎴愭皵鍊欙紝鍏跺畠璇█鐨勭粏鑺備篃涓嶅皯(灝界姣旇搗C++璧鋒潵榪樻槸灝忓帆瑙佸ぇ宸?錛屽氨鎷縥avascript鏉ヨ錛屼綔鐢ㄥ煙瑙勫垯錛屽悕瀛楁煡鎵撅紝closure錛宖or/in錛岃繖浜涢兘鏄粏鑺傦紝鑰屼笖鍏朵腑榪樻湁榪濆弽鐩磋鐨勩備絾璁稿鍔ㄦ佽璦鐨勭▼搴忓憳鐨勭悊蹇墊垜鐚滃ぇ綰︽槸瀛﹀埌鍝敤鍒板摢緗€備絾C++灝變笉涓鏍蜂簡錛屽C++涔嬩漢鏈変竴縐嶇被浼間簬琚殫紺虹殑娼滃湪蹇冩侊紝灝辨槸涓瀹氳鍏堟妸璇█鏍稿績鍩烘湰涓婂悆閫忎簡鎵嶈兘涓嬫墜鍐欏嚭婕備寒鐨勭▼搴忋傝繖棣栧厛灝遍敊浜嗐傝繖涓剰璇嗗艦鎴愮殑鍘熷洜鍦ㄧ浜岀偣錛孋++涔︾睄銆傚競闈笂鐨凜++涔︾睄涓嶈鍏舵暟錛屼絾鏈変竴涓叡鍚岀殑緙虹偣錛屽氨鏄璇█緇嗚妭鐨勪功澶鈥斺斻奀++ gotchas銆嬶紝銆奅ffective C++銆嬶紝銆奙ore Effective C++銆嬶紝浣嗘棤鍙帤闈炵殑鏄紝C++鏄繖鏍蜂竴闂ㄨ璦錛氳鎷垮畠婊¤凍鐜頒唬緙栫▼鐞嗗康鐨勯渶姹傦紝灝ゅ叾鏄疌++搴撳紑鍙戠殑闇姹傦紝榪樺繀欏誨緱鍏蟲敞璇█緇嗚妭錛屼箖鑷充簬鍦–++涓埄鐢ㄨ璦緇嗚妭宸茬粡鎴愪簡涓闂ㄥ闂傛瘮濡侰++妯℃澘鍦ㄨ璁′箣鍒濇牴鏈病鏈夋兂鍒版ā鏉垮厓緙栫▼榪欏洖浜嬶紝鏇存病鎯沖埌C++妯℃澘緋葷粺鏄浘鐏靛畬澶囩殑錛岃繖涔熷氨瀵艱嚧浜嗐奙odern C++ Design銆嬪拰銆奀++ Template Metaprogramming銆嬬殑鎯婁笘楠囦織銆?/p>

銆銆榪欎簺鎶鏈殑鍑虹幇涓轟粈涔堟儕涓栭獓淇楋紝鎵撲釜姣旀柟錛屽氨濂芥瘮鏄竴鍧楀ぇ瀹墮兘璁や負宸茬粡鐔熸倝鏃犳瘮錛屽啀鏃犵瀵嗗彲璦鐨勫湡鍦頒笂錛岀獊鐒舵煇澶╂湁浜烘寲鍒板師鏉ュ湴涓嬭繕钑磋棌鐫鏈涓板瘜鐨勭煶娌廣傚湪榪欎箣鍓嶇殑C++铏界劧涔熸湁涓浜涚粏鑺傦紝浣嗕篃榪樼畻瀹規槗鎺屾彙錛岄偅鍙槸C++紼嬪簭鍛樹滑鐨刪appy old times錛屽洜涓篊++鐨勪竴鍒囬兘涓瑙堟棤浣欙紝everything is figured out銆傜劧鑰屻奙odern C++ Design銆嬬殑鍑轟笘鍛婅瘔浜轟滑錛屸滅灖錛岃繕鏈夊灝戠粏鑺備綘浠病鏈夋帉鎻″晩銆傗濅簬鏄疌++紼嬪簭鍛樹滑涔呰繚鐨勬縺鎯呰閲嶇噧璧鋒潵錛屽涓嶉【韜殑韙忓叆緇嗚妭鐨勬布娉戒腑銆傚挨鍏舵槸錛屾ā鏉跨紪紼嬪皢C++鐨勭粏鑺傝繘涓姝ユ寲鎺樺埌浜嗘瀬鑷粹斺旀垜浠共鍢涘叧蹇冩秹鍙婄被瀵硅薄鐨勯殣寮忚漿鎹㈢殑浼樺厛綰ч珮浣?鐪嬬湅boost::is_base_of灝卞彲浠ョ煡閬撴湁澶氳寮備簡銆?/p>

銆銆浣嗘渶澶х殑闂榪樺湪浜庯紝瀵逛簬榪欎簺緇嗚妭鐨勫叧娉ㄨ繕鐪熸湁瀹冨悎閫傜殑鐞嗙敱錛氭垜浠寮鍙戠幇浠fā鏉垮簱錛岃寮鍙慳ctive library錛屽氨蹇呴』鍔ㄧ敤妯℃澘緙栫▼鎶鏈紝瑕佸姩鐢ㄦā鏉跨紪紼嬫妧鏈紝灝卞繀欏誨埄鐢ㄨ璦鐨勭妱瑙掓棶鏃紝enable_if錛宼ype_traits錛岀敋鑷寵繛鏃╁氨鍙や簳鏃犳嘗鐨凜瀹忎篃鍦ㄤ貢涓栦腑閲嶇敓錛岀湅鐪媌oost::preprocessor鏈夊璇″紓灝辯煡閬撲簡錛岃繛C瀹忕殑鍥劇伒瀹屽鎬?棰勭紪璇戞湡鐨?閮借鎸栨帢鍑烘潵浜嗐備負浠涔堣鍋氳繖浜?濂界帺?鏍囨?閮戒笉鏄紝寮鍙戝簱鐨勫疄闄呴渶姹傘備絾榪欎篃姝f槸鏈澶х殑鎮插搥浜嗐傚湪boost閲岄潰鍥犲疄闄呴渶姹傝屽姩鐢ㄨ璦緇嗚妭鏈緇堝眳鐒惰兘紲炲鐨勫畬鎴愪換鍔$殑鏈濂芥暀鏉愬氨鏄痓oost::foreach錛岃繖涓皬璁炬柦瀵硅璦緇嗚妭鐨勫彂鎺樿揪鍒頒簡鎯婂ぉ鍦版常楝肩鐨勫湴姝ワ紝涓嶄俊浣犲厛璇曠潃鑷繁鍘葷湅鐪嬪畠鐨勬簮浠g爜錛屽啀鐪嬬湅浣滆呬粙緇嶅畠鐨勬枃绔犲惂銆傝宐oost::typeof涔熶笉鐢樺叾鍚庘斺擟++璇█閲岄潰鏈夊お澶氳鈥滃彂鐜扳濊屼笉鏄鈥滃彂鏄庘濈殑鎶鏈傞毦閬撴渶鍒濇棤鎰忚緗繖浜涜璦瑙勫垯鐨勫浼欎滑閮芥槸Oracles?

銆銆鍥犱負娌℃湁variadic templates錛屼漢浠敤瀹忓姞涓婄己鐪佹ā鏉垮弬鏁版潵瀹炵幇綾諱技鏁堟灉銆傚洜涓烘病鏈塩oncepts錛屼漢浠敤妯℃澘鍔犱笂鏋愭瀯鍑芥暟鐨勭粏鑺傛潵瀹屾垚綾諱技宸ヤ綔銆傚洜涓烘病鏈塼ypeof錛屼漢浠敤妯℃澘鍏冪紪紼嬪拰瀹忓姞涓婃棤灝界殑緇嗚妭鏉ュ疄鐜扮洰鏍団?C++寮鍙戣呬滑鐨凞IY綺劇涓嶅彲璋撲笉寮恒?/p>

銆銆鐒惰岋紝濡傛灉浠呬粎鏄洜涓鴻寮鍙戜紭縐鐨勫簱錛岄偅涔堟秹鍙婅繖浜涚粏鑺傞兘榪樻槸鎯呮湁鍙師鐨勶紝鑷沖皯鍦–++09鍑虹幇騫朵笖緙栬瘧鍣ㄥ巶鍟嗚窡涓婁箣鍓嶏紝榪欎簺閮借繕鑳借鏄笉寰楀凡鑰屼負涔嬨備絾鎴戜滑騫垮ぇ鐨凜++紼嬪簭鍛樺憿?澶т紬鏄鏄撹璇鐨勶紝鎴戜篃鏇劇粡鏄備互涓烘帉鎻′簡鏇村鐨勮璦緇嗚妭灝辨洿鐗涳紝浣嗗疄闄呭嵈鏄偅浜涜璦緇嗚妭鍗佹湁鍏節鏄鉤鏃剁紪紼嬬敤閮界敤涓嶅埌鐨勩侰++涓紬澶氱殑緇嗚妭铏界劧鍦ㄥ簱璁捐鑰呮墜閲岄潰鏈夊叾鐢ㄦ涔嬪湴錛屼絾鏅氱▼搴忓憳鍒欐牴鏈棤闇榪囧鍏蟲敞錛屽挨鍏舵槸娌℃湁瀹為檯鍔ㄦ満鐨勫叧娉ㄣ備竴鑸х殑緙栫爜瀹炶返鍑嗗垯錛屼互鍙婂熀鏈殑緙栫▼鑳藉姏鍜屽熀鏈姛錛屼箖鑷沖熀鏈殑紼嬪簭璁捐鐞嗚浠ュ強綆楁硶璁捐銆傛墠鏄湡姝i渶瑕佽姳鏃墮棿鎺屾彙鐨勪笢瑗褲?/p>

銆銆瀛︿範鏈浣崇紪鐮佸疄璺墊瘮瀛︿範C++鏇撮噸瑕併傜湅浼樼鐨勪唬鐮佷篃姣斿煁澶寸敤宸姴鐨勭紪鐮佹柟寮忓啓鍨冨溇浠g爜瑕佹湁鏁堛傜洿鎺ャ佹竻鏅般佹槑浜嗐並ISS鍦拌〃杈炬剰鍥炬瘮鐜╃紪鐮佽姳鎷涜閲嶈鈥?/p>

銆銆閬垮厤鍘昏繃闂換浣曡璦緇嗚妭錛岄櫎闈炲繀瑕併傝繖涓繀瑕佹槸鎸囧湪瀹為檯緙栫▼褰撲腑閬囧埌闂錛岃繖鏍峰氨綆楅渶瑕佽繃闂粏鑺傦紝涔熸槸鏈鐪佷簨鐨勶紝鎳掓儼鑰呭師鍒欏槢銆備竴涓帉鎻′簡鍩烘湰鐨勭紪紼嬬悊蹇靛茍鏈夎緝寮哄涔犺兘鍔涚殑紼嬪簭鍛樺湪鐢ㄤ竴闂ㄩ檶鐢熺殑璇█緙栫▼鏃跺氨綆楁嬁鐫閭f湰璇█鐨勫湥緇忎粠绱㈠紩緲昏搗涔熷彲浠ョ紪鍑哄悎鏍肩殑紼嬪簭鏉ャ傚崄騫村浼氱紪紼嬩笉鏄寚瀵規瘡闂ㄨ璦閮藉緱鍗佸勾錛岄偅涓杈堝瓙鎵嶈兘瀛﹀嚑闂ㄨ璦鍝紝濡傛灉鎸夊瓧姣嶉『搴忓鐨勮瘽涓杈堝瓙閮藉埆鎸囨湜瀛﹀埌Ruby浜?鍗佸勾瀛︿範緙栫▼鏇翠笉鏄寚鍏堟妸璇█鐗規т粠綺楀埌緇嗗叏閮藉悆閫忔墠鏁笅鎵嬬紪紼嬶紝鍦ㄥ疄璺典腑鎻愰珮鎵嶆槸鏈閲嶈鐨勩?/p>

銆銆鑷充簬榪欑鎶犺璦緇嗚妭鐨勫摬瀛︿負浣曡兘鍦ㄧぞ緹ら噷闈㈠憟閲庣伀鐕庡師涔嬪娍錛屽氨鏄竴涓績鐞嗗鐨勯棶棰樹簡銆傛兂鍍忎漢浠湪璁哄潧涓婅璁洪棶棰樻椂錛屼竴涓璇█鎶婃彙寰堢粏鑷寸殑浜鴻偗瀹氳兘澶熷緱鍒版洿澶氱殑浣╂湇錛岃岀敱浜庤鍧涗笂鐨勯棶棰樺ぇ澶氭槸灝忛棶棰橈紝鎵浠ヨВ鍐沖疄闄呴棶棰樼殑鐪熸鑳藉姏騫朵笉鑳藉緱鍒版樉鐜幫紝涔熷氨鏄錛岀煡璇嗗瀷鐨勪漢鑳藉寰楀埌鏇村浣╂湇錛屽悗鑰呬究鎴愪負鍔ㄥ姏鍜屼豢鏁堢殑鐮濈爜銆傜劧鑰岀湡姝g殑緙栫▼鑳藉姏鏄笌璇█緇嗚妭娌″叧緋葷殑錛岀啛緇冭繍鐢ㄤ竴闂ㄨ璦鑳藉甯綘鏈浣寵〃杈句綘鐨勬剰鍥撅紝浣嗙啛緇冭繍鐢ㄤ竴闂ㄨ璦緇濅笉鎰忓懗鐫瑕佹妸瀹冪殑杈硅竟瑙掕鍏ㄩ兘璁頒綇銆傛噦寰椾竴浜涘父璇嗭紝鏈変簡緙栫▼鐨勫熀鏈洿瑙夛紝閬囧埌涓浜涚粏鑺傞敊璇殑鏃跺欏啀鍘繪煡涔︼紝鏄渶鑺傜渷鏃墮棿鐨勫姙娉曘?/p>

銆銆C++鐨勪功錛孊jarne鐨勫湥緇忋奣he C++ Programming Language銆嬫槸楂樺眿寤虹摯鐨勩傘婂ぇ瑙勬āC++紼嬪簭璁捐銆嬫槸鎸哄姟瀹炵殑銆傘夾ccelerated C++銆嬫槸鏈浣沖叆闂ㄧ殑銆傘奀++ Templates銆嬫槸浠呬綔鍙傝冪殑銆傘奀++ Template Metaprogramming銆嬫槸綺懼姏榪囧墿鑰呭彲浠ョ帺涓鐜╃殑錛屾櫘閫氱▼搴忓憳紕伴兘鍒鐨勩傘奍SO.IEC C++ Standard 14882銆嬩笉鏄嬁鏉ヨ鐨勩侭jarne鏈榪戝湪鍋欳++鐨勬暀鑲詫紝鏂頒功鏄粷瀵瑰彲浠ユ湡寰呯殑銆?/p>

銆銆P.S. 鍏充簬濡備綍瀛︿範緙栫▼錛実9鐨刡log涓婃湁璁稿綺懼僵鐨勬枃绔狅細榪欓噷錛岃繖閲岋紝榪欓噷錛岃繖閲屸?瀹為檯涓婏紝鎴戝緩璁綘鍘繪妸g9鑰佸ぇ鐨刡log緲諱釜搴曟湞澶?:P

銆銆鍐峆.S. 涔﹀崟?鎴戞槸閬戜簬緇欏嚭涓涓被浼箋奀++鍒濆鑰呭繀璇匯嬭繖縐嶄功鍗曠殑銆侰++鐨勪功涓嶈鍏舵暟錛岃鍏鐨勫ソ涔︿篃涓嶈儨鏋氫婦銆傚彧涓嶈繃鏈変簺涔﹀鏄撶粰鍒濆鑰呴犳垚涓縐嶉敊瑙夛紝灝辨槸鈥滃涔燙++灝卞簲璇ユ槸榪欎釜鏍峰瓙鐨勨濄傛瘮濡傛湁鏈嬪弸鎻愬埌鐨勩婇珮璐ㄩ噺C/C++緙栫▼銆嬶紝榪欐湰涔︽湁浠峰鹼紝浣嗕笉閫傚悎鍒濆鑰咃紝鍒濆鑰呰榪欐牱鐨勪功瀹規槗涓鍙墮殰鐩笉瑙佹嘲灞便傚疄闄呬笂錛屾紜殑鎬佸害鏄紝緇嗚妭鏄繀瑕佺殑銆備絾緇嗚妭鏄瑕佺殑銆傚叾瀹炲涔犵紪紼嬫垜瑙夊緱搴旇鏈鍏堝涔犲浣曠敤浼爜琛ㄨ揪鎬濇兂鍛紝鍚涗笉瑙併奍ntroduction to Algorithm銆嬮噷闈㈢殑浠g爜?銆奣AOCP銆嬩腑鐨勪唬鐮?鍝︼紝瀵逛簡瀹冧滑鏄嚜宸卞緩绔嬬殑璇█錛屼絾榪欑浠呮暀瀛︾洰鐨勭殑璇█鐨勭洰鐨勫氨鏄負浜嗛伩鍏嶈鍐欑▼搴忕殑浜轟竴寮濮嬪氨蹇樹簡鍐欑▼搴忔槸涓轟簡瀹屾垚鍔熻兘錛屼互涓哄啓紼嬪簭灝辨槸鍜岃璦緇嗚妭浣滄枟浜変簡銆侭jarne璇寸▼搴忕殑姝g‘鎬ф渶閲嶈錛宐oost鐨勭紪鐮佹爣鍑嗛噷闈篃灝嗘紜у垪鍦ㄦц兘鍓嶉潰銆?/p>

銆銆姝ゅ錛屼竴鏃﹀緩绔嬩簡姝g‘鐨勫涔犵紪紼嬬殑鐞嗗康錛屽叾瀹炰粈涔堜功(鍙涓嶆槸澶瀮鍦劇殑)閮芥湁浜涚敤澶勩傞兘褰撴垚鍙傝冧功錛岀敤鐨勬椂鍊欎粠鐩綍鎴栫儲寮曠炕錛屽熀鏈氨瀵逛簡銆?/p>

銆銆鍐嶅啀P.S. myan鑰佸ぇ鍜実9鑰佸ぇ閮界粰鍑轟簡璁稿綺懼僵鐨勮瑙c傛垜涓嶅緱涓嶅啀鍔犱笂涓涓狿.S銆傚叿浣撴垜灝變笉鎽樺綍浜嗭紝濡傛灉浣犺鍒拌繖閲岋紝璇峰姟蹇呭線涓嬬湅浠栦滑鐨勮瘎璁恒傝漿杞借呭埆蹇樹簡杞澆浠栦滑鐨勮瘎璁?-)

銆銆璁稿鏈嬪弸閮介棶鎴戝悓涓涓棶棰橈紝鍒板簳瑕佷笉瑕佸涔燙++銆傚叾瀹炶繖涓棶棰橀棶寰楀緢娌℃湁鎰忎箟銆傗滃C++鈥濆拰鈥滀笉瀛++鈥濊繖涓簩鍒嗘硶鏄病鎰忎箟鐨勶紝涓轟粈涔?鍥犱負榪欎釜闂寰堣〃闈紝鐢氳嚦寰堟誕韜併傞噸瑕佺殑涓嶆槸浣犳帉鎻$殑璇█錛岃屾槸浣犳帉鎻$殑鑳藉姏錛屽熺敤myan鑰佸ぇ鐨勮瘽錛屸滈噸瑕佺殑鏄繖涓(緇冭繃紼嬶紝鑰屼笉鏄粨鏋滐紝瑕佺殑鏄綘綺楀.鐨勮吙錛岃屼笉鏄綘韜笂鑳岀殑閭h鐩愬反銆傗濄傛澶栧涔燙++鐨勬剰涔夊叾瀹炵湡鐨勬槸閱夌縼涔嬫剰涓嶅湪閰掞紝鍍廋/C++榪欑緋葷粺綰ц璦錛屽湪瀛︿範鐨勮繃紼嬩腑蹇呴』瑕佹秹鍙婂埌涓浜涘簳灞傜煡璇嗭紝濡傚唴瀛樼鐞嗐佺紪璇戣繛鎺ョ郴緇熴佹眹緙栬璦銆佺‖浠朵綋緋葷粨鏋勭瓑絳夌瓑絳夌煡璇?娉ㄦ剰錛岃繖涓嶅寘鎷繃鍒嗙妱瑙掓棶鏃殑璇█鏋濊妭)銆傝繖浜涗笢瑗夸篃灝辨槸鎵璋撶殑鍐呭姛浜?鍏跺疄鏈鏈閲嶈鐨勫唴鍔熻繕鏄暱鏈熷涔犳墍紓ㄧ粌鍑烘潵鐨勮嚜瀛﹁兘鍔?銆傚姝ゅぇ鍢碕oel鍦ㄣ奐oel On Software銆嬮噷闈㈡彁鍒扮殑婕忔礊鎶借薄瀹氬緥闃愯堪寰楀氨闈炲父婕備寒銆?/p>

銆銆鎵浠ワ紝絳旀鏄紝璁╀綘鎴愪負楂樻墜鐨勫茍涓嶆槸浣犳帉鎻′粈涔堣璦錛岀簿閫欳++鏈繀灝辮兘璁╀綘鎴愪負楂樻墜錛屼笉綺鵑欳++涔熸湭蹇呭氨鑳借浣犳垚涓轟綆鎵嬨傛垜鎯沖ぇ瀹墮兘涓嶄細鎬鐤慻9鑰佸ぇ濡傛灉瑕佹妱璧稢++鍋氫竴涓」鐩殑璇濅細姣斿ぇ澶氭暟鑷鐔熺粌C++鐨勪漢瑕佸仛寰楁紓浜傛墍浠ュ叧閿殑涓嶆槸璇█榪欎釜琛ㄥ眰鐨勪笢瑗匡紝鑰屾槸搴曚笅鐨勬湰璐ㄧ煕鐩俱傚綋鐒訛紝涓嶆槸璇撮偅灝變粈涔堣璦閮戒笉瑕佸浜嗭紝鎸夌収涓縐嶆浌鎿嶇殑閫昏緫錛屸滃ぉ涓嬭璦錛屽敮imperative涓巇eclarative鑰斥濄侰++鏄墠鑰呴噷闈㈡渶澶嶆潅鐨勪竴縐嶏紝鏀寔鏈騫挎硾鐨勭紪紼嬭寖寮忋傚熺敤褰撳垵鏁板緋誨叆瀛﹀ぇ浼氫笂涓涓佸笀鐨勮瘽錛屸滀綘鏁板閮藉浜嗭紝榪樻湁浠涔堜笉鑳藉鐨勫憿?鈥濄傚璇█鏄竴涓斿緞錛屽鏋滀綘鎶婂畠鐢ㄦ潵紓ㄧ粌鑷繁錛屽彲浠ャ傚鏋滀綘鎶婂畠鐢ㄦ潵浣滀負瀛︿範緋葷粺搴曞眰鐭ヨ瘑鐨勯挜鍖欙紝鍙互銆傚鏋滀綘鎶婂畠鐢ㄦ潵浣滀負瀛︿範濡備綍緙栧啓浼樼鐨勪唬鐮侊紝濡備綍緇勭粐澶у瀷鐨勭▼搴忥紝濡備綍榪涜鎶借薄璁捐錛屽彲浠ャ傚鏋滄帀涔﹁錛屽厜鍟冪粏鑺傦紝鎴戣涓轟笉鍙互(闄ら潪浣犲繀欏昏鐢ㄥ埌緇嗚妭錛屽儚boost搴撶殑coder浠?銆?/p>

鐒跺悗鍐嶅熺敤涓涓媑9鑰佸ぇ鐨勩婇摱寮瑰拰鎴戜滑鐨勮亴涓氥嬩腑鐨勮瘽錛?/p>

銆銆閾跺脊鍜屾垜浠殑鑱屼笟鍙戝睍鏈変粈涔堢浉騫?寰堢畝鍗曪細鎴戜滑寰楁妸鏃墮棿鐢ㄤ簬瀛︿範瑙e喅鏈川鍥伴毦銆傛柊鎶鏈粰楂樻墜甯︽潵鏂逛究銆傝彍楦熶滑鍗翠笉鐢ㄦ寚鏈涜鏂版妧鏈嫰鏁戙傛部鐢ㄤ互鍓嶇殑姣斿柣錛?涓嫻佺殑鎽勫獎甯堜笉浼氬洜涓虹浉鏈虹殑鏇存柊鎹唬鑰屼涪鎺夐キ紕楋紝鍙嶈屽彲鑳藉熷姪鍏堣繘鎶鏈暀涓嬩紶涓栦匠浣溿傚洜涓烘憚褰辯殑鏈川鍥伴毦錛岃繕鏄憚褰卞笀鐨勮壓鏈劅瑙夈傜儹闂ㄦ妧鏈篃灝辯瓑浜庣浉鏈恒?涓嶅仠榪芥柊錛屽涔犺繖涓鏋訛紝閭d釜杞歡錛屽ソ姣旀垚澶╅捇鐮斾笉鍚岀浉鏈虹殑璇存槑涔︺傝岀儹闂ㄦ妧鏈悗鐨勬潵榫欏幓鑴夛紝鎵嶅ソ姣旀憚褰辨妧鏈備負浠涔堟帹鍑鴻繖涓鏋?瀹冭В鍐充簡浠涔堝叾瀹冩鏋?涓嶈兘瑙e喅鐨勯棶棰?瀹冨湪鍝噷閫傜敤?瀹冨湪鍝噷涓嶉傜敤?瀹冪敤浜嗕粈涔堟柊鐨勮璁?瀹冩敼榪涗簡鍝簺鏃х殑璁捐?Why is forever. 鍜?鏈嬪弸鑱婂ぉ鏃舵彁鍒癝teve McConnell鐨勩奝rofessional Software Development銆嬮噷闈㈠紩浜嗕竴涓皟鏌ワ紝璇磋蔣浠跺紑鍙戞妧鏈殑鍗婅“鏈?0騫淬備篃灝辨槸璇?0騫村悗鎴戜滑鐜板湪鐭ヨ瘑閲屼竴鍗婄殑涓滆タ榪囨椂銆傜浉褰撲笉鍧忋傛湅鍙嬫墦瓚i亾錛氣滃簲 璇ヨ20騫村悗IT鐣屼竴鍗婄殑鎶鏈繃鏃訛紝鎴戜滑瀛︾殑榪囨椂鎶鏈繙榪滆秴榪囪繖涓瘮渚嬨傚叿浣撳埌鏌愪漢錛屽緢鍙兘5騫翠粬灝卞簾浜嗏濄傝瘽铏芥偛瑙傦紝浣嗗彲瑙侀夋嫨瀛︿範鍐呭鐨勯噸瑕佹с傚涔?鏈川鎶鑹?鎶鏈繜鏃╄繃鏃訛紝鎶鑹哄嵈甯哥敤闀挎柊)榪樻湁涓濂藉錛屽氨鏄笉鐢ㄧ湅鐫鑷繁蹇冪埍鐨勬妧鏈彈鍒版寫鎴樼殑鏃跺欏共鍤庛侰/C++榪囨椂灝辮繃鏃朵簡鍛楋紝鍙鏈夊叾瀹冪殑緋葷粺緙栫▼ 璇█銆侸ava鍊掍簡灝卞掍簡鍛楋紝鏈繀鎴戜笉鑳界敤.net?Ruby鏄欒姳涓鐜板張濡備綍銆傚鏋滅敤寰椾笉鐖斤紝鎹㈠埌鍏跺畠鍔ㄦ佽璦灝辨槸浜嗐侸2EE琚簾浜嗗張鎬庢牱?鏈繀鎴戜滑灝?鍋氫笉鍑哄垎甯冪郴緇熶簡?榪欓噷榪樹婦浜嗘洿澶氱殑渚嬪瓙銆?/p>

銆銆涓鍙ヨ瘽錛屽彧鏈変漢鏄湡姝g殑閾跺脊銆傝亴涓氬彂灞曠殑鐩爣錛屽氨鏄妸鑷繁鍙樻垚閾跺脊銆傞偅鏃跺欙紝浣犲氨涓嶅啀鏄漢錛岃屾槸浜哄脊銆?/p>

銆銆鏈鍚庡氨浠ユ垜鍦˙jarne鐨勪紬澶氳璋堝綋涓憳褰曠殑涓浜涘叧浜庡浣曞涔燙++(浠ュ強緙栫▼)鐨勭湅娉曠粨鏉熷惂(娌$┖閫愭緲昏瘧浜嗭紝鍙皢鍏朵腑鎴戣寰楁渶閲嶈鐨勫嚑孌佃瘧浜嗕竴涓嬶紝褰撶劧錛屽叾瀹冧篃寰堥噸瑕侊紝榪欎簺孌佃惤鏄湪Bjarne鐨勬墍鏈夐噰璁跨ǹ涓憳鎶勫嚭鏉ョ殑錛屾墍浠ュ己鐑堝緩璁兘榪囩洰涓涓?錛?/p>

銆銆I suspect that people think too little about what they want to build, too little about what would make it correct, and too much about "efficiency" and following fashions of programming style. The key questions are always: "what do I want to do?" and "how do I know that I have done if?". Strategies for testing enters into my concerns from well before I write the firat line of code, and that despite my view that you have to write code very early - rather than wait until a design is complete.

銆銆璇戯細鎴戞劅瑙変漢浠繃澶氬叧娉ㄤ簡鎵璋撯滄晥鐜団濅互鍙婅窡闅忕紪紼嬮鏍肩殑娼祦錛屽嵈涓ラ噸蹇借浜嗘湰涓嶈琚拷瑙嗙殑闂錛屽鈥滄垜絀剁珶鎯寵鏋勫緩浠涔堟牱鐨勭郴緇熲濄佲滄庢牱鎵嶈兘浣垮畠姝g‘鈥濄傛渶鍏抽敭鐨勯棶棰樻案榪滄槸錛氣滄垜絀剁珶鎯寵鍋氫粈涔?鈥濆拰鈥滃浣曟墠鑳界煡閬撴垜鐨勭郴緇熸槸鍚﹀凡緇忓畬鎴愪簡鍛?鈥濆氨鎷挎垜鏉ヨ鍚э紝鎴戜細鍦ㄧ紪鍐欑涓琛屼唬鐮佷箣鍓嶅氨鑰冭檻嫻嬭瘯鏂規錛岃屼笖榪欒繕鏄湪鎴戝叧浜庡簲褰撴棭浜庤璁″畬鎴愪箣鍓嶅氨榪涜緙栫爜鐨勮鐐圭殑鍓嶆彁涔嬩笅銆?/p>

銆銆Obviously, C++ is very complex. Obviously, people get lost. However, most peple get lost when they get diverted into becoming language lawyers rather than getting lost when they have a clear idea of what they want to express and simply look at C++ language features to see how to express it. Once you know data absreaction, class hierarchies (object-oriented programming), and parameterization with types (generic programming) in a fairly general way, the C++ language features fall in place.

銆銆璇戯細璇氱劧錛孋++闈炲父澶嶆潅銆傝瘹鐒訛紝浜轟滑榪峰け鍏朵腑浜嗐傜劧鑰岄棶棰樻槸錛屽ぇ澶氭暟浜轟笉鏄洜涓洪鍏堝鑷繁鎯寵琛ㄨ揪浠涔堟湁浜嗘竻鏅扮殑璁よ瘑鍙笉榪囧湪鍘籆++璇█涓悳瀵誨悎閫傜殑璇█鐗規ф椂榪峰け鐨勶紝鐩稿弽錛屽ぇ澶氭暟浜烘槸鍦ㄤ笉瑙夋垚涓鴻璦寰嬪笀鐨勮礬涓婅糠澶卞湪緇嗚妭鐨勪笡鏋椾腑鐨勩備簨瀹炴槸錛屽彧闇瀵規暟鎹娊璞°佺被浣撶郴緇撴瀯(OOP)浠ュ強鍙傛暟鍖栫被鍨?GP)鏈変竴涓浉褰撲竴鑸眰闈㈢殑浜嗚В錛孋++綰風箒鐨勮璦鐗規т篃灝辨竻鏅拌搗鏉ヤ簡銆?/p>

銆銆Well, I don't think I made such a trade-off. I want elegant and efficient code. Sometimes I get it. These dichotomies (between efficiency versus correctness, efficiency versus programmer time, efficiency versus high-level, et cetera.) are bogus.

銆銆I think the real problem is that "we" (that is, we software developers) are in a permanent state of emergency, grASPing at straws to get our work done. We perform many minor miracles through trial and error, excessive use of brute force, and lots and lots of testing, but--so often--it's not enough.

銆銆Software developers have become adept at the difficult art of building reasonably reliable systems out of unreliable parts. The snag is that often we do not know exactly how we did it: a system just "sort of evolved" into something minimally acceptable. Personally, I prefer to know when a system will work, and why it will.

銆銆There are more useful systems developed in languages deemed awful than in languages praised for being beautiful--many more. The purpose of a programming language is to help build good systems, where "good" can be defined in many ways. My brief definition is, correct, maintainable, and adequately fast. Aesthetics matter, but first and foremost a language must be useful; it must allow real-world programmers to express real-world ideas succinctly and affordably.

銆銆I'm sure that for every programmer that dislikes C++, there is one who likes it. However, a friend of mine went to a conference where the keynote speaker asked the audience to indicate by show of hands, one, how many people disliked C++, and two, how many people had written a C++ program. There were twice as many people in the first group than the second. Expressing dislike of something you don't know is usually known as prejudice. Also, complainers are always louder and more certain than proponents--reasonable people acknowledge flaws. I think I know more about the problems with C++ than just about anyone, but I also know how to avoid them and how to use C++'s strengths.

銆銆In any case, I don't think it is true that the programming languages are so difficult to learn. For example, every first-year university biology textbook contains more details and deeper theory than even an expert-level programming-language book. Most applications involve standards, operating systems, libraries, and tools that far exceed modern programming languages in complexity. What is difficult is the appreciation of the underlying techniques and their application to real-world problems. Obviously, most current languages have many parts that are unnecessarily complex, but the degree of those complexities compared to some ideal minimum is often exaggerated.

銆銆We need relatively complex language to deal with absolutely complex problems. I note that English is arguably the largest and most complex language in the world (measured in number of words and idioms), but also one of the most successful.

銆銆C++ provides a nice, extended case study in the evolutionary approach. C compatibility has been far harder to maintain than I or anyone else expected. Part of the reason is that C has kept evolving, partially guided by people who insist that C++ compatibility is neither necessary nor good for C. Another reason-- probably even more important--is that organizations prefer interfaces that are in the C/C++ subset so that they can support both languages with a single effort. This leads to a constant pressure on users not to use the most powerful C++ features and to myths about why they should be used "carefully," "infrequently," or "by experts only." That, combined with backwards-looking teaching of C++, has led to many failures to reap the potential benefits of C++ as a high-level language with powerful abstraction mechanisms.

銆銆The question is how deeply integrated into the application those system dependencies are. I prefer the application to be designed conceptually in isolation from the underlying system, with an explicitly defined interface to "the outer world," and then integrated through a thin layer of interface code.

銆銆Had I had a chance to name the style of programming I like best, it would have been "class-oriented programming", but then I'm not particularly good at finding snappy names. The school of thought that I belong to - rooted in Simula and related design philosophies - emphasizes the role of compile-time checking and flexible (static) type systems. Reasoning about the behavior of a program has to be rooted in the (static) structure of the source code. The focus should be on guarantees, invariant, etc. which are closely tied to that static structure. This is the only way I know to effectively deal with correctness. Testing is essential but cannot be systematic and complete without a good internal program structure - simple-minded blackbox testing of any significant system is infeasible because of the exponential explosion of states.

銆銆So, I recommend people to think in terms of class invariants, exception handling guarantees, highly structured resource management, etc. I should add that I intensely dislike debugging (as ah hoc and unsystematic) and strongly prefer reasoning about source code and systematic testing.

銆銆Pros: flexibility, generality, performance, portability, good tool support, available on more platforms than any competitor except C, Access to hardware and system resources, good availability of programmers and designers. Cons: complexity, sub-optimal use caused by poor teaching and myths.



snowball 2008-04-06 12:07 鍙戣〃璇勮
]]>
C++涓殑鍐呭瓨鍒掑垎http://www.shnenglu.com/snowball/archive/2008/04/06/46351.htmlsnowballsnowballSun, 06 Apr 2008 04:02:00 GMThttp://www.shnenglu.com/snowball/archive/2008/04/06/46351.htmlhttp://www.shnenglu.com/snowball/comments/46351.htmlhttp://www.shnenglu.com/snowball/archive/2008/04/06/46351.html#Feedback0http://www.shnenglu.com/snowball/comments/commentRss/46351.htmlhttp://www.shnenglu.com/snowball/services/trackbacks/46351.html鍦–++涓紝鍐呭瓨鍒嗘垚5涓尯錛屼粬浠垎鍒槸鍫嗐佹爤銆佽嚜鐢卞瓨鍌ㄥ尯銆佸叏灞/闈欐佸瓨鍌ㄥ尯鍜屽父閲忓瓨鍌ㄥ尯銆?/p>

銆銆鏍堬紝灝辨槸閭d簺鐢辯紪璇戝櫒鍦ㄩ渶瑕佺殑鏃跺欏垎閰嶏紝鍦ㄤ笉闇瑕佺殑鏃跺欒嚜鍔ㄦ竻妤氱殑鍙橀噺鐨勫瓨鍌ㄥ尯銆傞噷闈㈢殑鍙橀噺閫氬父鏄眬閮ㄥ彉閲忋佸嚱鏁板弬鏁扮瓑銆?/p>

銆銆鍫嗭紝灝辨槸閭d簺鐢眓ew鍒嗛厤鐨勫唴瀛樺潡錛屼粬浠殑閲婃斁緙栬瘧鍣ㄤ笉鍘葷錛岀敱鎴戜滑鐨勫簲鐢ㄧ▼搴忓幓鎺у埗錛屼竴鑸竴涓猲ew灝辮瀵瑰簲涓涓猟elete銆傚鏋滅▼搴忓憳娌℃湁閲婃斁鎺夛紝閭d箞鍦ㄧ▼搴忕粨鏉熷悗錛屾搷浣滅郴緇熶細鑷姩鍥炴敹銆?/p>

銆銆鑷敱瀛樺偍鍖猴紝灝辨槸閭d簺鐢眒alloc絳夊垎閰嶇殑鍐呭瓨鍧楋紝浠栧拰鍫嗘槸鍗佸垎鐩鎬技鐨勶紝涓嶈繃瀹冩槸鐢╢ree鏉ョ粨鏉熻嚜宸辯殑鐢熷懡鐨勩?/p>

銆銆鍏ㄥ眬/闈欐佸瓨鍌ㄥ尯錛屽叏灞鍙橀噺鍜岄潤鎬佸彉閲忚鍒嗛厤鍒板悓涓鍧楀唴瀛樹腑錛屽湪浠ュ墠鐨凜璇█涓紝鍏ㄥ眬鍙橀噺鍙堝垎涓哄垵濮嬪寲鐨勫拰鏈垵濮嬪寲鐨勶紝鍦–++閲岄潰娌℃湁榪欎釜鍖哄垎浜嗭紝浠栦滑鍏卞悓鍗犵敤鍚屼竴鍧楀唴瀛樺尯銆?/p>

銆銆甯擱噺瀛樺偍鍖猴紝榪欐槸涓鍧楁瘮杈冪壒孌婄殑瀛樺偍鍖猴紝浠栦滑閲岄潰瀛樻斁鐨勬槸甯擱噺錛屼笉鍏佽淇敼(褰撶劧錛屼綘瑕侀氳繃闈炴褰撴墜孌典篃鍙互淇敼錛岃屼笖鏂規硶寰堝)



snowball 2008-04-06 12:02 鍙戣〃璇勮
]]>
Memset ,memcpy,strcpy 鍖哄埆http://www.shnenglu.com/snowball/archive/2008/04/06/46345.htmlsnowballsnowballSun, 06 Apr 2008 02:31:00 GMThttp://www.shnenglu.com/snowball/archive/2008/04/06/46345.htmlhttp://www.shnenglu.com/snowball/comments/46345.htmlhttp://www.shnenglu.com/snowball/archive/2008/04/06/46345.html#Feedback0http://www.shnenglu.com/snowball/comments/commentRss/46345.htmlhttp://www.shnenglu.com/snowball/services/trackbacks/46345.html Memset 鐢ㄦ潵瀵逛竴孌靛唴瀛樼┖闂村叏閮ㄨ緗負鏌愪釜瀛楃錛屼竴鑸敤鍦ㄥ瀹氫箟鐨勫瓧絎︿覆榪涜鍒濆鍖栦負 鈥?鈥?/span> 鎴?/span> 鈥榎0鈥?/st1:chmetcnv> 錛?/span>

渚?/span> :char a[100];memset(a, '\0', sizeof(a));

聽聽聽 memset 鍙互鏂逛究鐨勬竻絀轟竴涓粨鏋勭被鍨嬬殑鍙橀噺鎴栨暟緇勩?/span>

濡傦細

struct sample_struct
{
char csName[16];
int iSeq;
int iType;
};

瀵逛簬鍙橀噺
struct sample_strcut stTest;

涓鑸儏鍐典笅錛屾竻絀?/span> stTest 鐨勬柟娉曪細

stTest.csName[0]='\0';
stTest.iSeq=0;
stTest.iType=0;

鐢?/span> memset 灝遍潪甯告柟渚匡細
memset(&stTest,0,sizeof(struct sample_struct));

濡傛灉鏄暟緇勶細

struct sample_struct TEST[10];
鍒?/span>
memset(TEST,0,sizeof(struct sample_struct)*10);

memcpy 鐢ㄦ潵鍋氬唴瀛樻嫹璐濓紝浣犲彲浠ユ嬁瀹冩嫹璐濅換浣曟暟鎹被鍨嬬殑瀵硅薄錛屽彲浠ユ寚瀹氭嫹璐濈殑鏁版嵁闀垮害銆?/span>

渚嬶細 char a[100],b[50]; memcpy(b, a, sizeof(b)); 娉ㄦ剰濡傜敤 sizeof(a) 錛屼細閫犳垚 b 鐨勫唴瀛樺湴鍧婧㈠嚭銆?/span>

Strcpy聽聽 灝卞彧鑳芥嫹璐濆瓧絎︿覆浜嗭紝瀹冮亣鍒?/span> '\0' 灝辯粨鏉熸嫹璐濄?/span>

渚嬶細 char a[100],b[50];strcpy(a,b); 濡傜敤 strcpy(b,a) 錛岃娉ㄦ剰 a 涓殑瀛楃涓查暱搴︼紙絎竴涓?/span> 鈥榎0鈥?/st1:chmetcnv> 涔嬪墠錛夋槸鍚﹁秴榪?/span> 50 浣嶏紝濡傝秴榪囷紝鍒欎細閫犳垚 b 鐨勫唴瀛樺湴鍧婧㈠嚭銆?/span>

str 涔熷彲浠ョ敤鐢ㄤ釜鍙傛暟鐨?/span> strncpy(a,b,n)

========================================================

memset 涓昏搴旂敤鏄垵濮嬪寲鏌愪釜鍐呭瓨絀洪棿銆?/span>
memcpy
鏄敤浜?/span> copy 婧愮┖闂寸殑鏁版嵁鍒扮洰鐨勭┖闂翠腑銆?/span>
strcpy
鐢ㄤ簬瀛楃涓?/span> copy, 閬囧埌 鈥榎0鈥?/st1:chmetcnv> 錛屽皢緇撴潫銆?/span>

濡傛灉浣犵悊瑙d簡榪欎簺錛屼綘搴旇鐭ラ亾浠栦滑鐨勫尯鍒細渚嬪浣犲垵濮嬪寲鏌愬潡絀洪棿鐨勬椂鍊欙紝鐢ㄥ埌 memcpy 錛岄偅涔堝簲璇ユ庝箞鍐欙紝鏄笉鏄樉寰楀緢絎ㄣ?/span>
int m[100]
memset((void*)m,0x00,sizeof(int)*100);//Ok
錛?/span>
memcpy((void*)m,"\0\0\0\0....",sizeof(int)*100);//it鈥檚 wrong.
reference : http://hi.baidu.com/%B5%CE%C9%B3/blog/item/12025c2af5ffc33c5343c19f.html



snowball 2008-04-06 10:31 鍙戣〃璇勮
]]>
Good C++ websitehttp://www.shnenglu.com/snowball/archive/2008/04/02/46004.htmlsnowballsnowballWed, 02 Apr 2008 02:17:00 GMThttp://www.shnenglu.com/snowball/archive/2008/04/02/46004.htmlhttp://www.shnenglu.com/snowball/comments/46004.htmlhttp://www.shnenglu.com/snowball/archive/2008/04/02/46004.html#Feedback0http://www.shnenglu.com/snowball/comments/commentRss/46004.htmlhttp://www.shnenglu.com/snowball/services/trackbacks/46004.html
http://www.autodev.net/
http://blog.csdn.net/pandaxcl
鏉滀腑浼?br />http://www.shnenglu.com/duzhongwei/
http://blog.csdn.net/win32asn
http://www.stlchina.org/
G9
http://blog.csdn.net/pongba/archive/2007/12/11/1930150.aspx

snowball 2008-04-02 10:17 鍙戣〃璇勮
]]>
国产精品久久波多野结衣| 久久人妻少妇嫩草AV无码专区| 99久久精品国产高清一区二区| 色综合久久久久综合体桃花网 | 777久久精品一区二区三区无码| 久久这里有精品视频| 精品久久久久久综合日本| 久久亚洲高清综合| 国产午夜精品久久久久免费视| 久久无码AV一区二区三区| 久久精品免费一区二区| 久久亚洲熟女cc98cm| 青青草原综合久久大伊人| 久久久无码精品亚洲日韩按摩 | 国产成人精品久久亚洲| 无码伊人66久久大杳蕉网站谷歌| 久久久久久极精品久久久| 久久九九久精品国产免费直播| 精品国产一区二区三区久久| 88久久精品无码一区二区毛片| 久久亚洲国产中v天仙www| 亚洲午夜无码AV毛片久久| 亚洲成色WWW久久网站| 亚洲精品无码专区久久久| 1000部精品久久久久久久久| 久久久精品久久久久特色影视| 亚洲人成电影网站久久| 97久久久精品综合88久久| 伊人久久大香线蕉综合热线| 国产免费福利体检区久久| 亚洲AV日韩精品久久久久久| 人妻丰满?V无码久久不卡| 久久精品国内一区二区三区| 久久精品aⅴ无码中文字字幕不卡| 久久久久亚洲AV无码专区桃色| 亚洲一区中文字幕久久| 九九99精品久久久久久| 精品国产VA久久久久久久冰| 亚洲国产精品久久久天堂| 国产精品久久毛片完整版| 热久久国产精品|