锘??xml version="1.0" encoding="utf-8" standalone="yes"?>美女任你摸久久,午夜久久美女,国产美女一区二区http://m.shnenglu.com/life02/category/11784.htmlzh-cnThu, 30 Jun 2011 05:27:31 GMTThu, 30 Jun 2011 05:27:31 GMT60Ubuntu 涓涔?C/C++ 緙栫▼鍩虹鍏ラ棬鏁欑▼http://m.shnenglu.com/life02/archive/2011/06/29/149736.htmllife02life02Wed, 29 Jun 2011 08:05:00 GMThttp://m.shnenglu.com/life02/archive/2011/06/29/149736.htmlhttp://m.shnenglu.com/life02/comments/149736.htmlhttp://m.shnenglu.com/life02/archive/2011/06/29/149736.html#Feedback0http://m.shnenglu.com/life02/comments/commentRss/149736.htmlhttp://m.shnenglu.com/life02/services/trackbacks/149736.htmlhttp://forum.ubuntu.org.cn/viewtopic.php?f=70&t=184787

life02 2011-06-29 16:05 鍙戣〃璇勮
]]>
緙栫▼緇忓吀濂戒功錛堣漿錛?/title><link>http://m.shnenglu.com/life02/archive/2009/10/09/98181.html</link><dc:creator>life02</dc:creator><author>life02</author><pubDate>Fri, 09 Oct 2009 10:47:00 GMT</pubDate><guid>http://m.shnenglu.com/life02/archive/2009/10/09/98181.html</guid><wfw:comment>http://m.shnenglu.com/life02/comments/98181.html</wfw:comment><comments>http://m.shnenglu.com/life02/archive/2009/10/09/98181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/life02/comments/commentRss/98181.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/life02/services/trackbacks/98181.html</trackback:ping><description><![CDATA[<p>1銆丣ava </p> <p>Java緙栫▼璇█錛堢涓夌増)---Java鍥涘ぇ鍚嶈憲----James Gosling(Java涔嬬埗) </p> <p>Java緙栫▼鎬濇兂錛堢2鐗?----Java鍥涘ぇ鍚嶈憲----Bruce Eckel </p> <p>Java緙栫▼鎬濇兂錛堢3鐗?----Java鍥涘ぇ鍚嶈憲----------------Bruce Eckel </p> <p>JAVA 2鏍稿績鎶鏈?鍗稩錛氬熀紜鐭ヨ瘑錛堝師涔︾7鐗堬級---Java鍥涘ぇ鍚嶈憲-----Cay Horstmann </p> <p>JAVA 2鏍稿績鎶鏈?鍗稩I錛氶珮綰х壒鎬э紙鍘熶功絎?鐗?----Java鍥涘ぇ鍚嶈憲-----Cay Horstmann </p> <p>Effective Java涓枃鐗?-----Java鍥涘ぇ鍚嶈憲--------Joshua Bloch </p> <p>綺鵑歋truts:鍩轟簬MVC鐨凧ava Web璁捐涓庡紑鍙?--瀛欏崼鐞?</p> <p>綺鵑欻ibernate錛欽ava瀵硅薄鎸佷箙鍖栨妧鏈瑙?--瀛欏崼鐞?</p> <p>Tomcat涓嶫ava Web寮鍙戞妧鏈瑙?-----------瀛欏崼鐞?</p> <p>Java涓庢ā寮?-----------------------------闃庡畯 </p> <p><br>2銆乧# </p> <p>C#紼嬪簭璁捐-------Charles Petzold“windows緙栫▼娉板北鍖楁枟”---C#璇█“鍊氬ぉ灞犻緳鍙屽墤” </p> <p>C# Primer涓枃鐗?-------Stanley B.Lippman---C#璇█“鍊氬ぉ灞犻緳鍙屽墤” </p> <p>.NET妗嗘灦紼嬪簭璁捐錛堜慨璁㈢増)--------Jeffrey Richter“windows緙栫▼娉板北鍖楁枟”---.NET騫沖彴鍥涘ぇ澶╃帇 </p> <p>c#Windows紼嬪簭璁捐----------Charles Petzold“windows緙栫▼娉板北鍖楁枟”------.NET騫沖彴鍥涘ぇ澶╃帇 </p> <p>.NET紼嬪簭璁捐鎶鏈唴騫?------------Jeff Prosise---.NET騫沖彴鍥涘ぇ澶╃帇 </p> <p>.NET鏈川璁?-絎?鍗鳳細鍏叡璇█榪愯搴?涓枃鐗?--------Chris Sells---.NET騫沖彴鍥涘ぇ澶╃帇 </p> <p> </p> <p>3銆丆++ </p> <p>C++紼嬪簭璁捐璇█錛堢壒鍒増)---c++鍏ぇ閲戝垰----Bjarne Stroustrup“C++涔嬬埗” </p> <p>C++ Primer (絎?鐗?涓枃鐗?---c++鍏ぇ閲戝垰---Stanley B.Lippman </p> <p>C++ Primer (絎?鐗?涓枃鐗?---c++鍏ぇ閲戝垰---Stanley B.Lippman </p> <p>C++鏍囧噯紼嬪簭搴撯旇嚜淇暀紼嬩笌鍙傝冩墜鍐?-c++鍏ぇ閲戝垰--Nicolai M.Josuttis </p> <p>C++璇█鐨勮璁″拰婕斿寲-----c++鍏ぇ閲戝垰----Bjarne Stroustrup“C++涔嬬埗” </p> <p>娣卞害鎺㈢儲C++瀵硅薄妯″瀷---c++鍏ぇ閲戝垰----Stanley B.Lippman </p> <p>Essential C++涓枃鐗?--c++鍏ぇ閲戝垰---Stanley B.Lippman </p> <p>Effective C++涓枃鐗?2nd Edition-----c++鍏ぇ閲戝垰------Scott Meyers </p> <p>More Effective C++涓枃鐗?---c++鍏ぇ閲戝垰------Scott Meyers </p> <p>C++緙栫▼鎬濇兂錛堢2鐗堬級 絎?鍗鳳細鏍囧噯C++瀵煎紩--------Bruce Eckel </p> <p>C++緙栫▼鎬濇兂錛堢2鐗堬級絎?鍗鳳細瀹炵敤緙栫▼鎶鏈?--------Bruce Eckel </p> <p>C++紼嬪簭璁捐--------------------------璋旦寮?</p> <p>C++ 紼嬪簭璁捐鏁欑▼(絎?鐗?--------------閽辮兘 </p> <p>C++ Primer Plus(絎簲鐗?涓枃鐗?--Stephen Prata </p> <p>騫垮崥濡傚洓搴撳叏涔he c++ programming language銆乧++ Primer <br>娣卞ゥ濡傚北閲嶆按澶岻nside the c++ object model <br>紼嬪簭搴撳ぇ鍏═he c++ standard libray <br>宸ョ▼緇忛獙涔嬬Н绱疎ffective c++銆丮ore Effective c++銆丒xceptional c++ </p> <p> </p> <p>c++鍏ぇ閲戝垰錛?<br>1銆丒ssentital c++---lippman---C++涔嬬埗錛屾梺鏋濇殏鐣ワ紝涓繪敾鏍稿績錛岃交钖勭煭灝忥紝鍒濆鑰?</p> <p>2銆乀he c++ programming language----C++涔嬬埗錛屾妧鏈潈濞侊紝鐢ㄨ瘝娣卞郴錛屾濇兂娣辮繙錛宑++鐧劇鍏ㄤ功浠h〃</p> <p>3銆乧++ Primer----lippman---綰墊í涔﹀競鍗佹暟騫達紝c++鏈浣蟲暀鏈紝c++鐧劇鍏ㄤ功浠h〃銆?<br>4銆両nside the c++ object model-----lippman----鎻ずc++搴曞眰錛岄潪甯稿ソ錛岄潪甯擱毦銆?<br>5銆丒ffective c++-----閫氳繃50涓紪紼嬪疄渚嬶紝灞曠ず涓撳緇忛獙錛岃鏂囨湁瓚o紝娣卞嫻呭嚭銆?<br>6銆丮ore Effective c++錛嶏紞錛嶏紞閫氳繃35涓紪紼嬪疄渚嬶紝灞曠ず涓撳緇忛獙錛岃鏂囨湁瓚o紝娣卞嫻呭嚭銆?<br>7銆乀he c++ standard libray錛嶏紞錛峜++鏍囧噯搴撶殑鐧劇鍏ㄤ功銆?<br>8銆佽璁℃ā寮忥細鍙鐢ㄩ潰鍚戝璞¤蔣浠剁殑鍩虹</p> <p><br>4銆乧 </p> <p>C紼嬪簭璁捐璇█錛堢2鐗?#183;鏂扮増錛?--C璇█“鍊氬ぉ灞犻緳鍙屽墤”---Brian W.Kernighan“C璇█涔嬬埗” </p> <p>C Primer Plus涓枃鐗堬紙絎簲鐗堬級--------C璇█“鍊氬ぉ灞犻緳鍙屽墤”---Stephen Prata </p> <p>C紼嬪簭璁捐錛堢涓夌増錛?--------------------------璋旦寮?</p> <p>C璇█澶у叏錛堢鍥涚増錛?--------------------------HERBERT SCHILDT </p> <p>C璇█鎺ュ彛涓庡疄鐜幫細鍒涘緩鍙噸鐢ㄨ蔣浠剁殑鎶鏈?------------DAVID R.HANSON   </p> <p>C璇█鍙傝冩墜鍐?鍘熶功絎?鐗?--------------------------Samuel P.Harbison </p> <p>C紼嬪簭璁捐鏁欑▼---------------------------------H.M.Deitel/P.J.Deitel </p> <p>C闄烽槺涓庣己闄?----------------------------------Andrew Koenig   </p> <p><br>5銆乂B </p> <p>Visual Basic .NET鎶鏈唴騫?----VB緙栫▼涓夊墤瀹?----------Francesco Balena“vb棣栧腑澶у笀” </p> <p>Windows紼嬪簭璁捐-Visual Basic.NET璇█鎻忚堪--VB緙栫▼涓夊墤瀹?----Charles Petzold“windows緙栫▼娉板北 </p> <p>鍖楁枟”--- </p> <p>.NET妗嗘灦紼嬪簭璁捐錛歏isual Basic.NET璇█鎻忚堪--VB緙栫▼涓夊墤瀹?-Jeffrey Richter“windows緙栫▼娉板北鍖?</p> <p>鏂?#8221;---錛孎rancesco Balena“vb棣栧腑澶у笀”   </p> <p>Visual Basic 6緙栫▼鎶鏈ぇ鍏?-----------------------Francesco Balena“vb棣栧腑澶у笀” </p> <p>Visual Basic.NET 浠庡叆闂ㄥ埌綺鵑?------------------------Petroutsos,E. </p> <p>楂樼駭VISUAL BASIC緙栫▼-----------------------------------MATTHEW CURLAND   </p> <p><br>6銆丏elphi </p> <p>Inside VCL(娣卞叆鏍稿績鈥斺擵CL鏋舵瀯鍓栨瀽)----------鏉庣淮 </p> <p>Delphi 7楂樻晥鏁版嵁搴撶▼搴忚璁?-------------鏉庣淮 </p> <p>闈㈠悜瀵硅薄寮鍙戝疄璺典箣璺紙Delphi鐗堬級----------鏉庣淮 </p> <p><br>7銆乂C </p> <p>Windows 紼嬪簭璁捐錛堢5鐗堬級-----Charles Petzold“windows緙栫▼娉板北鍖楁枟”--- </p> <p>Windows鏍稿績緙栫▼----------Jeffrey Richter“windows緙栫▼娉板北鍖楁枟”--- </p> <p>Windows楂樼駭緙栫▼鎸囧崡---------Jeffrey Richter“windows緙栫▼娉板北鍖楁枟”--- </p> <p>娣卞叆嫻呭嚭MFC錛堢浜岀増錛?----“MFC鍥涘ぇ澶╃帇”-------渚嵎 </p> <p>MFC Windows紼嬪簭璁捐錛堢2鐗?---MFC鍥涘ぇ澶╃帇”---------Jeff Prosise </p> <p>Visual C++ 鎶鏈唴騫曪紙絎?鐗?--MFC鍥涘ぇ澶╃帇”--------David Kruglinski </p> <p>娣卞叆瑙f瀽MFC-------------MFC鍥涘ぇ澶╃帇”-----------George Shepherd </p> <p>Visual C++.NET 鎶鏈唴騫曪紙絎?鐗?-MFC鍥涘ぇ澶╃帇”------------David Kruglinski </p> <p><br>8銆乿f </p> <p>Visual Foxpro紼嬪簭璁捐鍙傝冩墜鍐?------------------寮犳椽涓?</p> <p>涓撳闂ㄨ瘖鈥斺擵isual FoxPro寮鍙戠瓟鐤?60闂?------------------寮犳椽涓?</p> <p>Visual FoxPro 6.0/9.0瑙e喅鏂規涓庤寖渚嬪ぇ鍏?------------------寮犳椽涓?</p> <p>Visual FoxPro杞歡寮鍙戞ā寮忎笌搴旂敤妗堜緥-------------------寮犳椽涓?</p> <p> </p> <p>9銆侀粦瀹?</p> <p>搴旂敤瀵嗙爜瀛?鍗忚綆楁硶涓嶤婧愮▼搴?----------Bruce Schneier </p> <p>緗戠粶淇℃伅瀹夊叏鐨勭湡鐩?----------Bruce Schneier </p> <p>榛戝澶ф洕鍏夛細緗戠粶瀹夊叏鏈哄瘑涓庤В鍐蟲柟妗堬紙絎?鐗堬級--------STUART MCCLURE </p> <p>杞歡鍔犲瘑鎶鏈唴騫?-----------鐪嬮洩瀛﹂櫌 </p> <p>鍔犲瘑涓庤В瀵嗏斺旇蔣浠朵繚鎶ゆ妧鏈笌瀹屽叏瑙e喅鏂規------------鐪嬮洩瀛﹂櫌 </p> <p>鍔犲瘑涓庤В瀵嗭紙絎簩鐗堬級--------孌甸挗 </p> <p><br>10銆佹眹緙?</p> <p>Intel寰鐞嗗櫒緇撴瀯銆佺紪紼嬩笌鎺ュ彛錛堢鍏増錛?--------Barry B. Brey </p> <p>80*86銆佸鑵炬満姹囩紪璇█紼嬪簭璁捐---------Barry B. Brey </p> <p>Windows鐜涓?2浣嶆眹緙栬璦紼嬪簭璁捐錛堢2鐗?-----------緗椾簯褰?</p> <p>IBM-PC姹囩紪璇█紼嬪簭璁捐錛堢2鐗堬級 鏈功鏄浗鍐呬紭縐鏁欐潗--------娌堢編鏄?娓╁啲濠?</p> <p>IBM PC姹囩紪璇█紼嬪簭璁捐錛堢浜旂増錛?榪欐湰涔︾睄鏄浗澶栦紭縐鏁欐潗-------PETER ABEL钁?娌堢編鏄?娓╁啲铦夎瘧 </p> <p><br>11銆侀┍鍔ㄥ紑鍙?</p> <p>Windows WDM璁懼椹卞姩紼嬪簭寮鍙戞寚鍗?----------------------------------- Chris Cant </p> <p>Windows 2000/XP WDM璁懼椹卞姩紼嬪簭寮鍙?絎?鐗?--------------------------姝﹀畨娌?</p> <p>WINDOWS 2000/XP WDM璁懼椹卞姩紼嬪簭寮鍙?------------------------------- 姝﹀畨娌?</p> <p><br>12銆佺綉緇?</p> <p>璁$畻鏈虹綉緇滅鍥涚増涓枃鐗?---緗戠粶緙栫▼涓夊墤瀹?-------------Andrew S.Tanenbaum </p> <p><br>TCP/IP璇﹁В3鍗鋒湰--------------------Richard Stevens----緗戠粶緙栫▼涓夊墤瀹?</p> <p>UNIX緗戠粶緙栫▼2鍗鋒湰--------------------Richard Stevens----緗戠粶緙栫▼涓夊墤瀹?</p> <p>鐢═CP/IP榪涜緗戦檯浜掕仈-----------Douglas E. Comer </p> <p>楂樼駭TCP/IP緙栫▼-------------------Jon C. Snader </p> <p>C++緗戠粶緙栫▼-----------------------Douglas Schmidt </p> <p>UNIX鐜楂樼駭緙栫▼錛堢2鐗?--------------------Richard Stevens </p> <p> </p> <p>13銆佺畻娉?</p> <p>璁$畻鏈虹▼搴忚璁¤壓鏈?------Donald.E.Knuth----------綆楁硶“鍊氬ぉ灞犻緳”鍙屽墤 </p> <p>綆楁硶瀵艱-----------------Thomas H. Cormen--------綆楁硶“鍊氬ぉ灞犻緳”鍙屽墤 </p> <p>紱繪暎鏁板鍙婂叾搴旂敤----------Kenneth H.Rosen </p> <p>鍏蜂綋鏁板鈥旇綆楁満縐戝鍩虹--------Donald.E.Knuth </p> <p> </p> <p>14銆佸浘褰㈢紪紼?<br>Windows 鍥懼艦緙栫▼----------------FENG YUAN --鍥懼艦緙栫▼鐣岀殑Charles Petzold涔嬩功 </p> <p><br>15銆佹暟鎹粨鏋?</p> <p>鏁版嵁緇撴瀯 C++璇█鎻忚堪銆?8.00(Data Structures C++) William Ford,William Topp 鍒樺崼涓?娌堝畼鏋?</p> <p>鏁版嵁緇撴瀯綆楁硶涓庡簲鐢?C++璇█鎻忚堪銆?9.00Sartej Sahni 姹瘲鏋?瀛欐檽涓滅瓑鏈烘宸ヤ笟鍑虹増紺?</p> <p> </p> <p>16銆佽蔣浠跺伐紼?</p> <p>璁捐妯″紡--鍙鐢ㄩ潰鍚戝璞¤蔣浠剁殑鍩虹 </p> <p>閲嶆瀯鈥旀敼鍠勬棦鏈変唬鐮佺殑璁捐 </p> <p> </p> <p>17銆佹搷浣滅郴緇?</p> <p>娣卞叆鐞嗚В璁$畻鏈虹郴緇燂紙淇鐗堬級-------RANDAL E.BRYANT </p> <p> </p> <p>18銆乁nix </p> <p><br>UNIX 緗戠粶緙栫▼ 鍗稩 濂楁帴瀛楄仈緗慉PI錛堣嫳鏂囩増 絎笁鐗?<br>UNIX 緙栫▼鑹烘湳 <br>UNIX鐜楂樼駭緙栫▼錛堣嫳鏂囧獎鍗扮2鐗?----UNIX緙栫▼“鍦g粡 <br>UNIX鐜楂樼駭緙栫▼錛堣嫳鏂囧獎鍗扮増錛夛紙絎?鐗堬級 <br>99-UNIX鐜楂樼駭緙栫▼錛堢2鐗堬級 <br>UNIX鐜楂樼駭緙栫▼錛堢2鐗?---UNIX緙栫▼“鍦g粡 <br>UNIX緗戠粶緙栫▼ 絎?鍗鳳細濂楁帴鍙PI錛堢3鐗堬級 <br>UNIX緗戠粶緙栫▼鍗?錛氳繘紼嬮棿閫氫俊錛堢2鐗堬級錛堣嫳鏂囧獎鍗扮増錛?<br>UNIX 緗戠粶緙栫▼錛堢浜岀増錛夌2鍗鳳細榪涚▼闂撮氫俊 <br>UNIX緙栫▼鐜 <br>UNIX 緗戠粶緙栫▼ 鍗稩 濂楁帴瀛楄仈緗慉PI錛堣嫳鏂囩増 絎笁鐗?<br>UNIX緋葷粺緙栫▼ <br>UNIX鐜楂樼駭緙栫▼ <br>UNIX鐜楂樼駭緙栫▼錛堣嫳鏂囧獎鍗扮増 <br>88-LINUX鍐呮牳鍒嗘瀽鍙婄紪紼?<br>UNIX 緗戠粶緙栫▼ 鍗稩 濂楁帴瀛楄仈緗慉PI錛堣嫳鏂囩増 絎笁鐗堬級 <br>UNIX緗戠粶緙栫▼ 絎?鍗鳳細濂楁帴鍙PI錛堢3鐗堬級 <br>UNIX 緗戠粶緙栫▼錛堢浜岀増錛夌2鍗鳳細榪涚▼闂撮氫俊 <br>UNIX緗戠粶緙栫▼鍗?錛氳繘紼嬮棿閫氫俊錛堢2鐗堬級錛堣嫳鏂囧獎鍗扮増錛?<br>UNIX 緗戠粶緙栫▼錛堢2鐗堬級絎?鍗鳳細濂楁帴鍙PI鍜孹/Open 浼犺緭鎺ュ彛API <br>UNIX緗戠粶緙栫▼錛堝嵎1錛夛細榪炵綉鐨凙PLS錛氬鎺ュ瓧涓嶺TI錛堢浜岀増)錛堣嫳鏂囧獎鍗扮増錛?<br>UNIX鐜楂樼駭緙栫▼ <br>UNIX 鐜楂樼駭緙栫▼錛堣嫳鏂囩増錛?<br>UNIX鐜楂樼駭緙栫▼錛堢2鐗堬級 <br>Unix鎶鏈墜鍐?</p> <p> </p> <p>19銆丩inux </p> <p><br>Linux鍐呮牳璁捐涓庡疄鐜?<br>Linux鍐呮牳瀹屽叏娉ㄩ噴 <br>LINUX鍐呮牳鍒嗘瀽鍙婄紪紼?<br>GNU/Linux 緙栫▼鎸囧崡錛堢浜岀増錛?<br>Linux璁懼椹卞姩紼嬪簭錛堢涓夌増錛?<br>宓屽叆寮忚璁″強Linux椹卞姩寮鍙戞寚鍗椻斺斿熀浜嶢RM 9澶勭悊鍣?<br>Linux璁懼椹卞姩紼嬪簭 絎笁鐗堬紙鑻辨枃褰卞嵃鐗堬級 <br>Linux鍐呮牳璁捐涓庡疄鐜幫紙絎?鐗堬級 <br>Linux鍐呮牳璁捐涓庡疄鐜幫紙鑻辨枃褰卞嵃鐗堬級錛堢2鐗堬級 <br>linux鎶鏈墜鍐?</p> <p><br>20銆佹父鎴忕紪紼?</p> <p>Windows娓告垙緙栫▼澶у笀鎶宸э紙絎簩鐗?<br>娓告垙涔嬫梾--鎴戠殑緙栫▼鎰熸偀 <br>OpenGL瓚呯駭瀹濆吀錛氱涓夌増 <br>OpenGL緙栫▼鎸囧崡錛堢鍥涚増錛?<br>Java 娓告垙楂樼駭緙栫▼ <br>J2ME鎵嬫満娓告垙緙栫▼鍏ラ棬 <br>娓告垙涔嬫梾鈥斺旀垜鐨勭紪紼嬫劅鎮?<br>娓告垙寮鍙戜腑鐨勪漢宸ユ櫤鑳斤紙鑻辨枃褰卞嵃鐗堬級 <br>3D娓告垙錛氬嵎2 鍔ㄧ敾涓庨珮綰у疄鏃舵覆鏌撴妧鏈?<br>闈㈠悜瀵硅薄鐨勬父鎴忓紑鍙?<br>Java 娓告垙楂樼駭緙栫▼ <br>3D娓告垙緙栫▼澶у笀鎶宸?<br>娓告垙緙栫▼綺劇補 <br>闈㈠悜瀵硅薄鐨勬父鎴忓紑鍙?<br>3D娓告垙 鍗?錛氬疄鏃舵覆鏌撲笌杞歡鎶鏈?<br>3D娓告垙錛氬嵎2 鍔ㄧ敾涓庨珮綰у疄鏃舵覆鏌撴妧… <br>J2ME鎵嬫満娓告垙緙栫▼鍏ラ棬 <br>Direct3D娓告垙緙栫▼鍏ラ棬鏁欑▼錛堢浜岀増… </p> <p> </p> <p> </p> <p>21銆佺Щ鍔ㄥ紑鍙?</p> <p>Windows Mobile鎵嬫満搴旂敤寮鍙?<br>SYMBIAN OS C++鎵嬫満搴旂敤寮鍙?<br>68-Windows Mobile鎵嬫満搴旂敤寮鍙?-鍌呮洣 榻愬畤 寰愰獜 <br>48-SYMBIAN OS C++鎵嬫満搴旂敤寮鍙?錛堢2鍗鳳級------------------RICHARD HARRISON钁?鍛ㄨ壇蹇?鐜嬩集嬈h瘧 <br>68-SYMBIAN OS C++鎵嬫満搴旂敤寮鍙?--------------RICHARD HARRISON钁?鍛ㄨ壇蹇犺瘧   <br>Windows CE.net鍐呮牳瀹氬埗鍙婂簲鐢ㄧ▼搴忓紑鍙?--------鍛ㄦ瘬鏋?瀹佹潹 闄嗚吹寮?浠樻灄鏋?<br>宓屽叆寮忕郴緇焀indows CE 寮鍙戞妧宸т笌瀹炰緥--鍌呮洣 <br>Palm OS緙栫▼瀹炶返---緇濈増 </p> <p> </p> <p>22銆佸崟鐗囨満 </p> <p>鍗曠墖鏈鴻交鏉懼叆闂?---------------------------------鍛ㄥ潥(騫沖嚒鑰佸笀)   </p> <p>鍗曠墖鏈哄吀鍨嬫ā鍧楄璁″疄渚嬪鑸?----------------------姹傛槸縐戞妧 </p> <p>渚嬭8051----------------------------------------寮犱箟鍜?闄堟晫鍖?</p> <p>KEIL CX51 V7.0鍗曠墖鏈洪珮綰ц璦緙栫▼涓?#924;VISION2搴旂敤瀹炶返-----寰愮埍閽?nbsp;  </p> <p>鍗曠墖鏈哄簲鐢ㄧ▼搴忚璁℃妧鏈?淇鐗?--------------------鍛ㄨ埅鎱?</p> <p>8051鍗曠墖鏈哄疄璺典笌搴旂敤-------------------------------鍚撮噾鎴?</p> <p>MCS-51緋誨垪鍗曠墖鏈哄疄鐢ㄦ帴鍙f妧鏈?--------------------鏉庡崕 <br><br>23銆佷覆騫跺彛閫氳 </p> <p>Visual C++/Turbo C涓插彛閫氫俊緙栫▼瀹炶返------------------榫氬緩浼?</p> <p>VISUAL BASIC涓嶳S-232涓茶閫氫俊鎺у埗錛堟渶鏂扮増錛?---------鑼冮鎬箣 </p> <p> </p> <p>24銆佺數瀛?</p> <p>鏃犵嚎鐢佃瘑鍥句笌鐢佃礬鏁呴殰鍒嗘瀽杞繪澗鍏ラ棬(絎簩鐗? -------------------鑳℃枌 </p> <p>鏃犵嚎鐢靛厓鍣ㄤ歡媯嫻嬩笌淇悊鎶鏈交鏉懼叆闂紙絎簩鐗堬級 -------------------鑳℃枌 </p> <p>鍥捐〃緇嗚鐢靛瓙鎶鏈瘑鍥?------------------鑳℃枌 </p> <p>鍥捐〃緇嗚鐢靛瓙鍏冨櫒浠?------------------鑳℃枌 </p> <p>鍥捐〃緇嗚鍏冨櫒浠跺強瀹炵敤鐢佃礬-------------------鑳℃枌 </p> <p><br> </p> <img src ="http://m.shnenglu.com/life02/aggbug/98181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/life02/" target="_blank">life02</a> 2009-10-09 18:47 <a href="http://m.shnenglu.com/life02/archive/2009/10/09/98181.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>malloc()鍜宖ree()錛堣漿錛?/title><link>http://m.shnenglu.com/life02/archive/2009/10/09/98147.html</link><dc:creator>life02</dc:creator><author>life02</author><pubDate>Fri, 09 Oct 2009 05:02:00 GMT</pubDate><guid>http://m.shnenglu.com/life02/archive/2009/10/09/98147.html</guid><wfw:comment>http://m.shnenglu.com/life02/comments/98147.html</wfw:comment><comments>http://m.shnenglu.com/life02/archive/2009/10/09/98147.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/life02/comments/commentRss/98147.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/life02/services/trackbacks/98147.html</trackback:ping><description><![CDATA[<p>鏉ヨ嚜bc-cn C璇█璁哄潧</p> <p>       鍦–璇█鐨勫涔犱腑錛屽鍐呭瓨綆$悊榪欓儴鍒嗙殑鐭ヨ瘑鎺屾彙灝ゅ叾閲嶈錛佷箣鍓嶅C涓殑malloc()鍜宖ree()涓や釜鍑芥暟鐨勪簡瑙g敋灝戯紝鍙煡閬撳ぇ姒傝鎬庝箞鐢ㄢ斺斿氨鏄痬alloc鐒跺悗free灝變竴鍒嘜K浜嗐傚綋鐒剁幇鍦ㄥ榪欎袱涓嚱鏁扮殑浣撲細涔熶笉瑙佸緱澶氾紝涓嶈繃瀵逛簬鏈枃绔犵涓夐儴鍒嗙殑鍐呭鍊掓槸鏈変簡杞姌鎬х殑璁よ瘑錛屾墍浠ュ啓涓嬭繖綃囨枃绔犱綔涓轟竴涓鐭ヨ瘑鐨勬葷粨銆傝繖綃囨枃绔犱箣鎵浠ュ懡鍚嶄腑鏈変釜“嫻呰皥”鐨勫瓧鐪鹼紝涔熷氨鏄繖涓剰鎬濅簡錛佸笇鏈涘澶у鏈変竴鐐瑰府鍔╋紒</p> <p>       濡傛灉涓嶆壇寰楀お榪滅殑璇濓紙姣斿璇存搷浣滅郴緇熶腑铏氭嫙鍐呭瓨鍜岀墿鐞嗗唴瀛樺浣曡繍鍋氬浣曠鐞嗕箣綾葷殑鐭ヨ瘑絳夛級錛屾垜鎰熻榪欑瘒鏂囩珷搴旇鏄瘮杈冨叏闈㈠湴璋堜簡涓涓媘alloc()鍜宖ree().榪欑瘒鏂囩珷鐢辨祬鍏ユ繁錛堜笉瑙佸緱鏈夊娣憋級鍒嗕笁涓儴鍒嗕粙緇嶄富瑕佸唴瀹廣?/p> <p>搴熻瘽浜嗛偅涔堝錛屼笅闈㈢珛鍒昏繘鍏ヤ富棰?===============銆嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨嬨?/p> <p><br>涓銆乵alloc()鍜宖ree()鐨勫熀鏈蹇典互鍙婂熀鏈敤娉曪細</p> <p>1銆佸嚱鏁板師鍨嬪強璇存槑錛?/p> <p>void *malloc(long NumBytes)錛氳鍑芥暟鍒嗛厤浜哊umBytes涓瓧鑺傦紝騫惰繑鍥炰簡鎸囧悜榪欏潡鍐呭瓨鐨勬寚閽堛傚鏋滃垎閰嶅け璐ワ紝鍒欒繑鍥炰竴涓┖鎸囬拡錛圢ULL錛夈?/p> <p>鍏充簬鍒嗛厤澶辮觸鐨勫師鍥狅紝搴旇鏈夊縐嶏紝姣斿璇寸┖闂翠笉瓚沖氨鏄竴縐嶃?/p> <p>void free(void *FirstByte)錛?璇ュ嚱鏁版槸灝嗕箣鍓嶇敤malloc鍒嗛厤鐨勭┖闂磋繕緇欑▼搴忔垨鑰呮槸鎿嶄綔緋葷粺錛屼篃灝辨槸閲婃斁浜嗚繖鍧楀唴瀛橈紝璁╁畠閲嶆柊寰楀埌鑷敱銆?/p> <p>2銆佸嚱鏁扮殑鐢ㄦ硶錛?/p> <p>     鍏跺疄榪欎袱涓嚱鏁扮敤璧鋒潵鍊掍笉鏄緢闅撅紝涔熷氨鏄痬alloc()涔嬪悗瑙夊緱鐢ㄥ浜嗗氨鐢╀簡瀹冩妸瀹冪粰free()浜嗭紝涓句釜綆鍗曚緥瀛愶細</p> <p>        // Code...</p> <p>        char *Ptr = NULL;</p> <p>        Ptr = (char *)malloc(100 * sizeof(char));</p> <p>        if (NULL == Ptr){<br>            exit (1);<br>        }</p> <p>        gets(Ptr);</p> <p>        // code...</p> <p>        free(Ptr);</p> <p>        Ptr = NULL;</p> <p>        // code...</p> <p>       灝辨槸榪欐牱錛佸綋鐒訛紝鍏蜂綋鎯呭喌瑕佸叿浣撳垎鏋愪互鍙婂叿浣撹В鍐熾傛瘮濡傝錛屼綘瀹氫箟浜嗕竴涓寚閽堬紝鍦ㄤ竴涓嚱鏁伴噷鐢寵浜嗕竴鍧楀唴瀛樼劧鍚庨氳繃鍑芥暟榪斿洖浼犻掔粰榪欎釜鎸囬拡錛岄偅涔堜篃璁擱噴鏀捐繖鍧楀唴瀛樿繖欏瑰伐浣滃氨搴旇鐣欑粰鍏朵粬鍑芥暟浜嗐?/p> <p>3銆佸叧浜庡嚱鏁頒嬌鐢ㄩ渶瑕佹敞鎰忕殑涓浜涘湴鏂癸細</p> <p>A銆佺敵璇蜂簡鍐呭瓨絀洪棿鍚庯紝蹇呴』媯鏌ユ槸鍚﹀垎閰嶆垚鍔熴?/p> <p>B銆佸綋涓嶉渶瑕佸啀浣跨敤鐢寵鐨勫唴瀛樻椂錛岃寰楅噴鏀撅紱閲婃斁鍚庡簲璇ユ妸鎸囧悜榪欏潡鍐呭瓨鐨勬寚閽堟寚鍚慛ULL錛岄槻姝㈢▼搴忓悗闈笉灝忓績浣跨敤浜嗗畠銆?/p> <p>C銆佽繖涓や釜鍑芥暟搴旇鏄厤瀵廣傚鏋滅敵璇峰悗涓嶉噴鏀懼氨鏄唴瀛樻硠闇詫紱濡傛灉鏃犳晠閲婃斁閭e氨鏄粈涔堜篃娌℃湁鍋氥傞噴鏀懼彧鑳戒竴嬈★紝濡傛灉閲婃斁涓ゆ鍙婁袱嬈′互涓婁細鍑虹幇閿欒錛堥噴鏀劇┖鎸囬拡渚嬪錛岄噴鏀劇┖鎸囬拡鍏跺疄涔熺瓑浜庡暐涔熸病鍋氾紝鎵浠ラ噴鏀劇┖鎸囬拡閲婃斁澶氬皯嬈¢兘娌℃湁闂錛夈?/p> <p>D銆佽櫧鐒秏alloc()鍑芥暟鐨勭被鍨嬫槸(void *),浠諱綍綾誨瀷鐨勬寚閽堥兘鍙互杞崲鎴?void *),浣嗘槸鏈濂借繕鏄湪鍓嶉潰榪涜寮哄埗綾誨瀷杞崲錛屽洜涓鴻繖鏍峰彲浠ヨ翰榪囦竴浜涚紪璇戝櫒鐨勬鏌ャ?/p> <p><br>浜屻乵alloc()鍒板簳浠庡摢閲屽緱鏉ヤ簡鍐呭瓨絀洪棿錛?/p> <p>1銆乵alloc()鍒板簳浠庡摢閲屽緱鍒頒簡鍐呭瓨絀洪棿錛熺瓟妗堟槸浠庡爢閲岄潰鑾峰緱絀洪棿銆備篃灝辨槸璇村嚱鏁拌繑鍥炵殑鎸囬拡鏄寚鍚戝爢閲岄潰鐨勪竴鍧楀唴瀛樸傛搷浣滅郴緇熶腑鏈変竴涓褰曠┖闂插唴瀛樺湴鍧鐨勯摼琛ㄣ傚綋鎿嶄綔緋葷粺鏀跺埌紼嬪簭鐨勭敵璇鋒椂錛屽氨浼氶亶鍘嗚閾捐〃錛岀劧鍚庡氨瀵繪壘絎竴涓┖闂村ぇ浜庢墍鐢寵絀洪棿鐨勫爢緇撶偣錛岀劧鍚庡氨灝嗚緇撶偣浠庣┖闂茬粨鐐歸摼琛ㄤ腑鍒犻櫎錛屽茍灝嗚緇撶偣鐨勭┖闂村垎閰嶇粰紼嬪簭銆傚氨鏄繖鏍鳳紒</p> <p>   璇村埌榪欓噷錛屼笉寰椾笉鍙﹀鎻掑叆涓涓皬璇濋錛岀浉淇″ぇ瀹朵篃鐭ラ亾鏄粈涔堣瘽棰樹簡銆備粈涔堟槸鍫嗭紵璇村埌鍫嗭紝鍙堝繊涓嶄綇璇村埌浜嗘爤錛佷粈涔堟槸鏍堬紵涓嬮潰灝卞彟澶栧紑涓皬閮ㄥ垎涓撻棬鑰屽張綆鍗曞湴璇翠竴涓嬭繖涓澶栬瘽錛?/p> <p>2銆佷粈涔堟槸鍫嗭細鍫嗘槸澶у鍏辨湁鐨勭┖闂達紝鍒嗗叏灞鍫嗗拰灞閮ㄥ爢銆傚叏灞鍫嗗氨鏄墍鏈夋病鏈夊垎閰嶇殑絀洪棿錛屽眬閮ㄥ爢灝辨槸鐢ㄦ埛鍒嗛厤鐨勭┖闂淬傚爢鍦ㄦ搷浣滅郴緇熷榪涚▼ 鍒濆鍖栫殑鏃跺欏垎閰嶏紝榪愯榪囩▼涓篃鍙互鍚戠郴緇熻棰濆鐨勫爢錛屼絾鏄寰楃敤瀹屼簡瑕佽繕緇欐搷浣滅郴緇燂紝瑕佷笉鐒跺氨鏄唴瀛樻硠婕忋?/p> <p>   浠涔堟槸鏍堬細鏍堟槸綰跨▼鐙湁鐨勶紝淇濆瓨鍏惰繍琛岀姸鎬佸拰灞閮ㄨ嚜鍔ㄥ彉閲忕殑銆傛爤鍦ㄧ嚎紼嬪紑濮嬬殑鏃跺欏垵濮嬪寲錛屾瘡涓嚎紼嬬殑鏍堜簰鐩哥嫭绔嬨傛瘡涓嚱鏁伴兘鏈夎嚜宸辯殑鏍堬紝鏍堣鐢ㄦ潵鍦ㄥ嚱鏁頒箣闂翠紶閫掑弬鏁般傛搷浣滅郴緇熷湪鍒囨崲綰跨▼鐨勬椂鍊欎細鑷姩鐨勫垏鎹㈡爤錛屽氨鏄垏鎹S/ESP瀵勫瓨鍣ㄣ傛爤絀洪棿涓嶉渶瑕佸湪楂樼駭璇█閲岄潰鏄懼紡鐨勫垎閰嶅拰閲婃斁銆?</p> <p>   浠ヤ笂鐨勬蹇墊弿榪版槸鏍囧噯鐨勬弿榪幫紝涓嶈繃鏈変釜鍒鍙ヨ鎴戝垹闄わ紝涓嶇煡閬撳洜涓鴻繖鏍瘋屽彉寰椾笉鏍囧噯浜哵_^.</p> <p>   閫氳繃涓婇潰瀵規蹇電殑鎻忚堪錛屽彲浠ョ煡閬擄細</p> <p>   鏍堟槸鐢辯紪璇戝櫒鑷姩鍒嗛厤閲婃斁錛屽瓨鏀懼嚱鏁扮殑鍙傛暟鍊箋佸眬閮ㄥ彉閲忕殑鍊肩瓑銆傛搷浣滄柟寮忕被浼間簬鏁版嵁緇撴瀯涓殑鏍堛?/p> <p>   鍫嗕竴鑸敱紼嬪簭鍛樺垎閰嶉噴鏀撅紝鑻ヤ笉閲婃斁錛岀▼搴忕粨鏉熸椂鍙兘鐢監S鍥炴敹銆傛敞鎰忚繖閲岃鏄彲鑳斤紝騫墮潪涓瀹氥傛墍浠ユ垜鎯沖啀寮鴻皟涓嬈★紝璁板緱瑕侀噴鏀撅紒</p> <p>娉ㄦ剰瀹冧笌鏁版嵁緇撴瀯涓殑鍫嗘槸涓ゅ洖浜嬶紝鍒嗛厤鏂瑰紡鍊掓槸綾諱技浜庨摼琛ㄣ傦紙榪欑偣鎴戜笂闈㈢◢寰彁榪囷級</p> <p><br>   鎵浠ワ紝涓句釜渚嬪瓙錛屽鏋滀綘鍦ㄥ嚱鏁頒笂闈㈠畾涔変簡涓涓寚閽堝彉閲忥紝鐒跺悗鍦ㄨ繖涓嚱鏁伴噷鐢寵浜嗕竴鍧楀唴瀛樿鎸囬拡鎸囧悜瀹冦傚疄闄呬笂錛岃繖涓寚閽堢殑鍦板潃鏄湪鏍堜笂錛屼絾鏄畠鎵鎸囧悜鐨勫唴瀹瑰嵈鏄湪鍫嗕笂闈㈢殑錛佽繖涓鐐硅娉ㄦ剰錛佹墍浠ワ紝鍐嶆兂鎯籌紝鍦ㄤ竴涓嚱鏁伴噷鐢寵浜嗙┖闂村悗錛屾瘮濡傝涓嬮潰榪欎釜鍑芥暟錛?/p> <p>   // code...</p> <p>       void Function(void)<br>       {<br>           char *p = (char *)malloc(100 * sizeof(char));<br>       }</p> <p>       灝辮繖涓緥瀛愶紝鍗冧竾涓嶈璁や負鍑芥暟榪斿洖錛屽嚱鏁版墍鍦ㄧ殑鏍堣閿姣佹寚閽堜篃璺熺潃閿姣侊紝鐢寵鐨勫唴瀛樹篃灝變竴鏍瘋窡鐫閿姣佷簡錛佽繖緇濆鏄敊璇殑錛佸洜涓虹敵璇風殑鍐呭瓨鍦ㄥ爢涓婏紝鑰屽嚱鏁版墍鍦ㄧ殑鏍堣閿姣佽窡鍫嗗畬鍏ㄦ病鏈夊暐鍏崇郴銆傛墍浠ワ紝榪樻槸閭e彞璇濓細璁板緱閲婃斁錛?/p> <p>3銆乫ree()鍒板簳閲婃斁浜嗕粈涔?/p> <p>        榪欎釜闂姣旇緝綆鍗曪紝鍏跺疄鎴戞槸鎯沖拰絎簩澶ч儴鍒嗙殑棰樼洰鐩稿懠搴旇屽凡錛佸搱鍝堬紒free()閲婃斁鐨勬槸鎸囬拡鎸囧悜鐨勫唴瀛橈紒娉ㄦ剰錛侀噴鏀劇殑鏄唴瀛橈紝涓嶆槸鎸囬拡錛佽繖鐐歸潪甯擱潪甯擱噸瑕侊紒鎸囬拡鏄竴涓彉閲忥紝鍙湁紼嬪簭緇撴潫鏃舵墠琚攢姣併傞噴鏀句簡鍐呭瓨絀洪棿鍚庯紝鍘熸潵鎸囧悜榪欏潡絀洪棿鐨勬寚閽堣繕鏄瓨鍦紒鍙笉榪囩幇鍦ㄦ寚閽堟寚鍚戠殑鍐呭鐨勫瀮鍦撅紝鏄湭瀹氫箟鐨勶紝鎵浠ヨ鏄瀮鍦俱傚洜姝わ紝鍓嶉潰鎴戝凡緇忚榪囦簡錛岄噴鏀懼唴瀛樺悗鎶婃寚閽堟寚鍚慛ULL錛岄槻姝㈡寚閽堝湪鍚庨潰涓嶅皬蹇冨張琚В寮曠敤浜嗐傞潪甯擱噸瑕佸晩榪欎竴鐐癸紒</p> <p>       濂戒簡錛佽繖涓?#8220;棰樺璇?#8221;緇堜簬璇村畬浜嗐傚氨榪欎箞綆鍗曡涓嬈★紝鐭ラ亾涓ぇ姒傚氨鍙互浜嗭紒涓嬮潰灝辮繘鍏ョ涓変釜閮ㄥ垎錛?/p> <p>涓夈乵alloc()浠ュ強free()鐨勬満鍒訛細</p> <p>       榪欎釜閮ㄥ垎鎴戜粖澶╂墠鏈変簡鏂扮殑璁よ瘑錛佽屼笖鏄漿鎶樻х殑璁よ瘑錛佹墍浠ワ紝榪欓儴鍒嗗彲鑳戒細鏈夋洿澶氫竴浜涜璇嗕笂鐨勯敊璇紒涓嶅鐨勫湴鏂硅澶у甯繖鎸囧嚭錛?/p> <p>       浜嬪疄涓婏紝浠旂粏鐪嬩竴涓媐ree()鐨勫嚱鏁板師鍨嬶紝涔熻涔熶細鍙戠幇浼間箮寰堢濂囷紝free()鍑芥暟闈炲父綆鍗曪紝鍙湁涓涓弬鏁幫紝鍙鎶婃寚鍚戠敵璇風┖闂寸殑鎸囬拡浼犻掔粰free()涓殑鍙傛暟灝卞彲浠ュ畬鎴愰噴鏀懼伐浣滐紒榪欓噷瑕佽拷韙埌malloc()鐨勭敵璇烽棶棰樹簡銆傜敵璇風殑鏃跺欏疄闄呬笂鍗犵敤鐨勫唴瀛樿姣旂敵璇風殑澶с傚洜涓鴻秴鍑虹殑絀洪棿鏄敤鏉ヨ褰曞榪欏潡鍐呭瓨鐨勭鐞嗕俊鎭傚厛鐪嬩竴涓嬪湪銆奤NIX鐜楂樼駭緙栫▼銆嬩腑絎竷绔犵殑涓孌佃瘽錛?/p> <p>       澶у鏁板疄鐜版墍鍒嗛厤鐨勫瓨鍌ㄧ┖闂存瘮鎵瑕佹眰鐨勮紼嶅ぇ涓浜涳紝棰濆鐨勭┖闂寸敤鏉ヨ褰曠鐞嗕俊鎭斺斿垎閰嶅潡鐨勯暱搴︼紝鎸囧悜涓嬩竴涓垎閰嶅潡鐨勬寚閽堢瓑絳夈傝繖灝辨剰鍛崇潃濡傛灉鍐欒繃涓涓凡鍒嗛厤鍖虹殑灝劇錛屽垯浼氭敼鍐欏悗涓鍧楃殑綆$悊淇℃伅銆傝繖縐嶇被鍨嬬殑閿欒鏄伨闅炬х殑錛屼絾鏄洜涓鴻繖縐嶉敊璇笉浼氬緢蹇氨鏆撮湶鍑烘潵錛屾墍浠ヤ篃灝卞緢闅懼彂鐜般傚皢鎸囧悜鍒嗛厤鍧楃殑鎸囬拡鍚戝悗縐誨姩涔熷彲鑳戒細鏀瑰啓鏈潡鐨勭鐞嗕俊鎭?/p> <p>       浠ヤ笂榪欐璇濆凡緇忕粰浜嗘垜浠竴浜涗俊鎭簡銆俶alloc()鐢寵鐨勭┖闂村疄闄呮垜瑙夊緱灝辨槸鍒嗕簡涓や釜涓嶅悓鎬ц川鐨勭┖闂淬備竴涓氨鏄敤鏉ヨ褰曠鐞嗕俊鎭殑絀洪棿錛屽彟澶栦竴涓氨鏄彲鐢ㄧ┖闂翠簡銆傝岀敤鏉ヨ褰曠鐞嗕俊鎭殑瀹為檯涓婃槸涓涓粨鏋勪綋銆傚湪C璇█涓紝鐢ㄧ粨鏋勪綋鏉ヨ褰曞悓涓涓璞$殑涓嶅悓淇℃伅鏄ぉ緇忓湴涔夌殑浜嬶紒涓嬮潰鐪嬬湅榪欎釜緇撴瀯浣撶殑鍘熷瀷錛?/p> <p>   struct mem_control_block {</p> <p>       int is_available;    //榪欐槸涓涓爣璁幫紵</p> <p>       int size;            //榪欐槸瀹為檯絀洪棿鐨勫ぇ灝?/p> <p>    };</p> <p>       瀵逛簬size,榪欎釜鏄疄闄呯┖闂村ぇ灝忋傝繖閲屽叾瀹炴垜鏈変釜鐤戦棶錛宨s_available鏄惁鏄竴涓爣璁幫紵鍥犱負鎴戠湅浜唂ree()鐨勬簮浠g爜涔嬪悗瀵硅繖涓彉閲忔劅瑙夋湁鐐圭撼闂鳳紙婧愪唬鐮佸湪涓嬮潰鍒嗘瀽錛夈傝繖閲岃繕璇峰ぇ瀹舵寚鍑猴紒</p> <p>       鎵浠ワ紝free()灝辨槸鏍規嵁榪欎釜緇撴瀯浣撶殑淇℃伅鏉ラ噴鏀緈alloc()鐢寵鐨勭┖闂達紒鑰岀粨鏋勪綋鐨勪袱涓垚鍛樼殑澶у皬鎴戞兂搴旇鏄搷浣滅郴緇熺殑浜嬩簡銆備絾鏄繖閲屾湁涓涓棶棰橈紝malloc()鐢寵絀洪棿鍚庤繑鍥炰竴涓寚閽堝簲璇ユ槸鎸囧悜絎簩縐嶇┖闂達紝涔熷氨鏄彲鐢ㄧ┖闂達紒涓嶇劧錛屽鏋滄寚鍚戠鐞嗕俊鎭┖闂寸殑璇濓紝鍐欏叆鐨勫唴瀹瑰拰緇撴瀯浣撶殑綾誨瀷鏈夊彲鑳戒笉涓鑷達紝鎴栬呬細鎶婄鐞嗕俊鎭睆钄芥帀錛岄偅灝辨病娉曢噴鏀懼唴瀛樼┖闂翠簡錛屾墍浠ヤ細鍙戠敓閿欒錛侊紙鎰熻鑷繁榪欓噷璇寸殑鏄簾璇濓級</p> <p>       濂戒簡錛佷笅闈㈢湅鐪媐ree()鐨勬簮浠g爜錛屾垜鑷繁鍒嗘瀽浜嗕竴涓嬶紝瑙夊緱姣旇搗malloc()鐨勬簮浠g爜鍊掓槸瀹規槗綆鍗曞緢澶氥傚彧鏄湁涓枒闂紝涓嬮潰鎸囧嚭錛?/p> <p>   // code...</p> <p>   <br>       void free(void *ptr) <br>       {</p> <p>            struct mem_control_block *free;</p> <p>            free = ptr - sizeof(struct mem_control_block);</p> <p>            free->is_available = 1;</p> <p>            return;<br>       }</p> <p>        鐪嬩竴涓嬪嚱鏁扮浜屽彞錛岃繖鍙ラ潪甯擱噸瑕佸拰鍏抽敭銆傚叾瀹炶繖鍙ュ氨鏄妸鎸囧悜鍙敤絀洪棿鐨勬寚閽堝掑洖鍘伙紝璁╁畠鎸囧悜綆$悊淇℃伅鐨勯偅鍧楃┖闂達紝鍥犱負榪欓噷鏄湪鍊間笂鍑忓幓浜嗕竴涓粨鏋勪綋鐨勫ぇ灝忥紒鍚庨潰閭d竴鍙ree->is_available = 1;鎴戞湁鐐圭撼闂鳳紒鎴戠殑鎯蟲硶鏄細榪欓噷is_available搴旇鍙槸涓涓爣璁拌屽凡錛佸洜涓轟粠榪欎釜鍙橀噺鐨勫悕縐頒笂鏉ョ湅錛宨s_available 緲昏瘧榪囨潵灝辨槸“鏄彲浠ョ敤”銆備笉瑕佽鎴戝湡錛佹垜瑙夊緱鍙橀噺鍚嶅瓧鍙互鍙嶆槧涓涓彉閲忕殑浣滅敤錛岀壒鍒槸涓ヨ皚鐨勪唬鐮併傝繖鏄簮浠g爜錛屾墍浠ユ垜瑙夊緱緇濆鏄弗璋ㄧ殑錛侊紒榪欎釜鍙橀噺鐨勫兼槸1錛岃〃鏄庢槸鍙互鐢ㄧ殑絀洪棿錛佸彧鏄繖閲屾垜鎯充簡鎯籌紝濡傛灉鎶婂畠鏀逛負0鎴栬呮槸鍏朵粬鍊間笉鐭ラ亾浼氬彂鐢熶粈涔堜簨錛燂紒浣嗘槸鏈変竴鐐規垜鍙互鑲畾錛屽氨鏄噴鏀劇粷瀵逛笉浼氶偅涔堥『鍒╄繘琛岋紒鍥犱負榪欐槸涓涓爣璁幫紒</p> <p>       褰撶劧錛岃繖閲屽彲鑳借繕鏄湁浜轟細鏈夌枒闂紝涓轟粈涔堣繖鏍峰氨鍙互閲婃斁鍛紵錛熸垜鍒氭墠涔熸湁榪欎釜鐤戦棶銆傚悗鏉ユ垜鎯沖埌錛岄噴鏀炬槸鎿嶄綔緋葷粺鐨勪簨錛岄偅涔堝氨free()榪欎釜婧愪唬鐮佹潵鐪嬶紝浠涔堜篃娌℃湁閲婃斁錛屽鍚э紵浣嗘槸瀹冪‘瀹炴槸紜畾浜嗙鐞嗕俊鎭殑閭e潡鍐呭瓨鐨勫唴瀹廣傛墍浠ワ紝free()鍙槸璁板綍浜嗕竴浜涗俊鎭紝鐒跺悗鍛婅瘔鎿嶄綔緋葷粺閭e潡鍐呭瓨鍙互鍘婚噴鏀撅紝鍏蜂綋鎬庝箞鍛婅瘔鎿嶄綔緋葷粺鐨勬垜涓嶆竻妤氾紝浣嗘垜瑙夊緱榪欎釜宸茬粡瓚呭嚭浜嗘垜榪欑瘒鏂囩珷鐨勮璁鴻寖鍥翠簡銆?/p> <p>       閭d箞錛屾垜涔嬪墠鏈変釜閿欒鐨勮璇嗭紝灝辨槸璁や負鎸囧悜閭e潡鍐呭瓨鐨勬寚閽堜笉綆$Щ鍒伴偅鍧楀唴瀛樹腑鐨勫摢涓綅緗兘鍙互閲婃斁閭e潡鍐呭瓨錛佷絾鏄紝榪欐槸澶ч敊鐗歸敊錛侀噴鏀炬槸涓嶅彲浠ラ噴鏀句竴閮ㄥ垎鐨勶紒棣栧厛榪欑偣搴旇瑕佹槑鐧姐傝屼笖錛屼粠free()鐨勬簮浠g爜鐪嬶紝ptr鍙兘鎸囧悜鍙敤絀洪棿鐨勯鍦板潃錛屼笉鐒訛紝鍑忓幓緇撴瀯浣撳ぇ灝忎箣鍚庝竴瀹氫笉鏄寚鍚戠鐞嗕俊鎭┖闂寸殑棣栧湴鍧銆傛墍浠ワ紝瑕佺‘淇濇寚閽堟寚鍚戝彲鐢ㄧ┖闂寸殑棣栧湴鍧錛佷笉淇″悧錛熻嚜宸卞彲浠ュ啓涓涓▼搴忕劧鍚庣Щ鍔ㄦ寚鍚戝彲鐢ㄧ┖闂寸殑鎸囬拡錛岀湅紼嬪簭浼氭湁浼氬穿錛?/p> <p>       鏈鍚庡彲鑳芥兂鍒癿alloc()鐨勬簮浠g爜鐪嬬湅malloc()鍒板簳鏄庝箞鍒嗛厤絀洪棿鐨勶紝榪欓噷闈㈡秹鍙婂埌寰堝鍏朵粬鏂歸潰鐨勭煡璇嗭紒鏈夊叴瓚g殑鏈嬪弸鍙互鑷繁鍘諱笅杞芥簮<br>浠g爜鍘葷湅鐪嬨?/p> <p><br>鍥涖佸叧浜庡叾浠栵細</p> <p>        鍏充簬C涓殑malloc()鍜宖ree()鐨勮璁哄氨鍐欏埌榪欓噷鍚э紒鍐欎簡涓変釜閽熷ご錛屾劅瑙夋湁鐐圭瘡錛佸笇鏈涘澶у鏈夋墍甯姪錛佹湁涓嶅鐨勫湴鏂規榪庡ぇ瀹舵寚鍑猴紒鏈鍚庯紝璋㈣阿鍙備笌榪欎釜甯栧瓙璁ㄨ鐨勬墍鏈夋湅鍙嬶紝甯栧瓙錛?a >http://www.bc-cn.net/bbs/dispbbs.asp?boardID=5&ID=81781&page=1</a>銆?br></p> <img src ="http://m.shnenglu.com/life02/aggbug/98147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/life02/" target="_blank">life02</a> 2009-10-09 13:02 <a href="http://m.shnenglu.com/life02/archive/2009/10/09/98147.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>malloc/free鍜宯ew/delete鐨勫尯鍒紙杞級http://m.shnenglu.com/life02/archive/2009/10/09/98146.htmllife02life02Fri, 09 Oct 2009 05:01:00 GMThttp://m.shnenglu.com/life02/archive/2009/10/09/98146.htmlhttp://m.shnenglu.com/life02/comments/98146.htmlhttp://m.shnenglu.com/life02/archive/2009/10/09/98146.html#Feedback0http://m.shnenglu.com/life02/comments/commentRss/98146.htmlhttp://m.shnenglu.com/life02/services/trackbacks/98146.htmlmalloc/free鍜宯ew/delete鐨勫尯鍒?/div>
2009騫?8鏈?8鏃?鏄熸湡浜?11:26

鏈変簡malloc/free涓轟粈涔堣繕瑕乶ew/delete 錛?br>        malloc涓巉ree鏄疌++/C璇█鐨勬爣鍑嗗簱鍑芥暟錛宯ew/delete鏄疌++鐨勮繍綆楃銆傚畠浠兘鍙敤浜庣敵璇峰姩鎬佸唴瀛樺拰閲婃斁鍐呭瓨銆?br>
瀵逛簬闈炲唴閮ㄦ暟鎹被鍨嬬殑瀵硅薄鑰岃█錛屽厜鐢╩aloc/free鏃犳硶婊¤凍鍔ㄦ佸璞$殑瑕佹眰銆傚璞″湪鍒涘緩鐨勫悓鏃惰鑷姩鎵ц鏋勯犲嚱鏁幫紝瀵硅薄鍦ㄦ秷浜′箣鍓嶈鑷姩鎵ц鏋愭瀯鍑芥暟銆傜敱浜巑alloc/free鏄簱鍑芥暟鑰屼笉鏄繍綆楃錛屼笉鍦ㄧ紪璇戝櫒鎺у埗鏉冮檺涔嬪唴錛屼笉鑳藉鎶婃墽琛屾瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟鐨勪換鍔″己鍔犱簬malloc/free銆?br>
        鍥犳C++璇█闇瑕佷竴涓兘瀹屾垚鍔ㄦ佸唴瀛樺垎閰嶅拰鍒濆鍖栧伐浣滅殑榪愮畻絎ew錛屼互鍙婁竴涓兘瀹屾垚娓呯悊涓庨噴鏀懼唴瀛樺伐浣滅殑榪愮畻絎elete銆傛敞鎰弉ew/delete涓嶆槸搴撳嚱鏁般?br>
鎴戜滑鍏堢湅涓鐪媘alloc/free鍜宯ew/delete濡備綍瀹炵幇瀵硅薄鐨勫姩鎬佸唴瀛樼鐞嗭紝瑙佺ず渚?-8銆?br>


class Obj

{

public :

         Obj(void){ cout << “Initialization” << endl; }

~Obj(void){ cout << “Destroy” << endl; }

void     Initialize(void){ cout << “Initialization” << endl; }

void     Destroy(void){ cout << “Destroy” << endl; }

};

void UseMallocFree(void)

{

     Obj   *a = (obj *)malloc(sizeof(obj));    // 鐢寵鍔ㄦ佸唴瀛?br>
     a->Initialize();                         // 鍒濆鍖?br>
     //…

     a->Destroy();    // 娓呴櫎宸ヤ綔

     free(a);         // 閲婃斁鍐呭瓨

}

void UseNewDelete(void)

{

     Obj   *a = new Obj;   // 鐢寵鍔ㄦ佸唴瀛樺茍涓斿垵濮嬪寲

     //…

     delete a;            // 娓呴櫎騫朵笖閲婃斁鍐呭瓨

}


紺轟緥7-8 鐢╩alloc/free鍜宯ew/delete濡備綍瀹炵幇瀵硅薄鐨勫姩鎬佸唴瀛樼鐞?br>


綾籓bj鐨勫嚱鏁癐nitialize妯℃嫙浜嗘瀯閫犲嚱鏁扮殑鍔熻兘錛屽嚱鏁癉estroy妯℃嫙浜嗘瀽鏋勫嚱鏁扮殑鍔熻兘銆傚嚱鏁癠seMallocFree涓紝鐢變簬malloc/free涓嶈兘鎵ц鏋勯犲嚱鏁頒笌鏋愭瀯鍑芥暟錛屽繀欏昏皟鐢ㄦ垚鍛樺嚱鏁癐nitialize鍜孌estroy鏉ュ畬鎴愬垵濮嬪寲涓庢竻闄ゅ伐浣溿傚嚱鏁癠seNewDelete鍒欑畝鍗曞緱澶氥?br>
鎵浠ユ垜浠笉瑕佷紒鍥劇敤malloc/free鏉ュ畬鎴愬姩鎬佸璞$殑鍐呭瓨綆$悊錛屽簲璇ョ敤new/delete銆傜敱浜庡唴閮ㄦ暟鎹被鍨嬬殑“瀵硅薄”娌℃湁鏋勯犱笌鏋愭瀯鐨勮繃紼嬶紝瀵瑰畠浠岃█malloc/free鍜宯ew/delete鏄瓑浠風殑銆?br>
     鏃㈢劧new/delete鐨勫姛鑳藉畬鍏ㄨ鐩栦簡malloc/free錛屼負浠涔圕++涓嶆妸malloc/free娣樻卑鍑哄眬鍛紵榪欐槸鍥犱負C++紼嬪簭緇忓父瑕佽皟鐢–鍑芥暟錛岃孋紼嬪簭鍙兘鐢╩alloc/free綆$悊鍔ㄦ佸唴瀛樸?br>
濡傛灉鐢╢ree閲婃斁“new鍒涘緩鐨勫姩鎬佸璞?#8221;錛岄偅涔堣瀵硅薄鍥犳棤娉曟墽琛屾瀽鏋勫嚱鏁拌屽彲鑳藉鑷寸▼搴忓嚭閿欍傚鏋滅敤delete閲婃斁“malloc鐢寵鐨勫姩鎬佸唴瀛?#8221;錛岀悊璁轟笂璁茬▼搴忎笉浼氬嚭閿欙紝浣嗘槸璇ョ▼搴忕殑鍙鎬у緢宸傛墍浠ew/delete蹇呴』閰嶅浣跨敤錛宮alloc/free涔熶竴鏍楓?/p>



life02 2009-10-09 13:01 鍙戣〃璇勮
]]>
鏍?/title><link>http://m.shnenglu.com/life02/archive/2009/09/21/96889.html</link><dc:creator>life02</dc:creator><author>life02</author><pubDate>Mon, 21 Sep 2009 14:46:00 GMT</pubDate><guid>http://m.shnenglu.com/life02/archive/2009/09/21/96889.html</guid><wfw:comment>http://m.shnenglu.com/life02/comments/96889.html</wfw:comment><comments>http://m.shnenglu.com/life02/archive/2009/09/21/96889.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/life02/comments/commentRss/96889.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/life02/services/trackbacks/96889.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> std;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_61_114_Open_Image onclick="this.style.display='none'; Codehighlighter1_61_114_Open_Text.style.display='none'; Codehighlighter1_61_114_Closed_Image.style.display='inline'; Codehighlighter1_61_114_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_61_114_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_114_Closed_Text.style.display='none'; Codehighlighter1_61_114_Open_Image.style.display='inline'; Codehighlighter1_61_114_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>typedef </span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000"> node</span><span id=Codehighlighter1_61_114_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_61_114_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> key;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> data;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000"> node </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">lchild,</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">rchild;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> bt</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">NULL;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_163_409_Open_Image onclick="this.style.display='none'; Codehighlighter1_163_409_Open_Text.style.display='none'; Codehighlighter1_163_409_Closed_Image.style.display='inline'; Codehighlighter1_163_409_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_163_409_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_163_409_Closed_Text.style.display='none'; Codehighlighter1_163_409_Open_Image.style.display='inline'; Codehighlighter1_163_409_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> insertbst(node </span><span style="COLOR: #000000">*&</span><span style="COLOR: #000000">p,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> k)</span><span id=Codehighlighter1_163_409_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_163_409_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (p</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">NULL)<br><img id=Codehighlighter1_180_268_Open_Image onclick="this.style.display='none'; Codehighlighter1_180_268_Open_Text.style.display='none'; Codehighlighter1_180_268_Closed_Image.style.display='inline'; Codehighlighter1_180_268_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_180_268_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_180_268_Closed_Text.style.display='none'; Codehighlighter1_180_268_Open_Image.style.display='inline'; Codehighlighter1_180_268_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_180_268_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_180_268_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)malloc(</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(node));<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        p</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">key</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">k;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        p</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">lchild</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">p</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">rchild</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">NULL;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (k</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">p</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">key)<br><img id=Codehighlighter1_292_307_Open_Image onclick="this.style.display='none'; Codehighlighter1_292_307_Open_Text.style.display='none'; Codehighlighter1_292_307_Closed_Image.style.display='inline'; Codehighlighter1_292_307_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_292_307_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_292_307_Closed_Text.style.display='none'; Codehighlighter1_292_307_Open_Image.style.display='inline'; Codehighlighter1_292_307_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_292_307_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_292_307_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (k</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">p</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">key)<br><img id=Codehighlighter1_328_364_Open_Image onclick="this.style.display='none'; Codehighlighter1_328_364_Open_Text.style.display='none'; Codehighlighter1_328_364_Closed_Image.style.display='inline'; Codehighlighter1_328_364_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_328_364_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_328_364_Closed_Text.style.display='none'; Codehighlighter1_328_364_Open_Image.style.display='inline'; Codehighlighter1_328_364_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_328_364_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_328_364_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> insertbst(p</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">lchild,k);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_371_407_Open_Image onclick="this.style.display='none'; Codehighlighter1_371_407_Open_Text.style.display='none'; Codehighlighter1_371_407_Closed_Image.style.display='inline'; Codehighlighter1_371_407_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_371_407_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_371_407_Closed_Text.style.display='none'; Codehighlighter1_371_407_Open_Image.style.display='inline'; Codehighlighter1_371_407_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_371_407_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_371_407_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> insertbst(p</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">rchild,k);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_440_511_Open_Image onclick="this.style.display='none'; Codehighlighter1_440_511_Open_Text.style.display='none'; Codehighlighter1_440_511_Closed_Image.style.display='inline'; Codehighlighter1_440_511_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_440_511_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_440_511_Closed_Text.style.display='none'; Codehighlighter1_440_511_Open_Image.style.display='inline'; Codehighlighter1_440_511_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> creatbst(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> a,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> n)</span><span id=Codehighlighter1_440_511_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_440_511_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_465_497_Open_Image onclick="this.style.display='none'; Codehighlighter1_465_497_Open_Text.style.display='none'; Codehighlighter1_465_497_Closed_Image.style.display='inline'; Codehighlighter1_465_497_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_465_497_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_465_497_Closed_Text.style.display='none'; Codehighlighter1_465_497_Open_Image.style.display='inline'; Codehighlighter1_465_497_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">n)</span><span id=Codehighlighter1_465_497_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_465_497_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        insertbst(bt,a[i]);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> bt;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_537_632_Open_Image onclick="this.style.display='none'; Codehighlighter1_537_632_Open_Text.style.display='none'; Codehighlighter1_537_632_Closed_Image.style.display='inline'; Codehighlighter1_537_632_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_537_632_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_537_632_Closed_Text.style.display='none'; Codehighlighter1_537_632_Open_Image.style.display='inline'; Codehighlighter1_537_632_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> preorder(node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> bt)</span><span id=Codehighlighter1_537_632_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_537_632_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (bt</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">NULL)<br><img id=Codehighlighter1_555_630_Open_Image onclick="this.style.display='none'; Codehighlighter1_555_630_Open_Text.style.display='none'; Codehighlighter1_555_630_Closed_Image.style.display='inline'; Codehighlighter1_555_630_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_555_630_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_555_630_Closed_Text.style.display='none'; Codehighlighter1_555_630_Open_Image.style.display='inline'; Codehighlighter1_555_630_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_555_630_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_555_630_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        cout</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">bt</span><span style="COLOR: #000000">->key</span><span style="COLOR: #000000"><<</span><span style="COLOR: #000000">endl;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        preorder(bt</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">lchild);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>        preorder(bt</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">rchild);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_647_745_Open_Image onclick="this.style.display='none'; Codehighlighter1_647_745_Open_Text.style.display='none'; Codehighlighter1_647_745_Closed_Image.style.display='inline'; Codehighlighter1_647_745_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_647_745_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_647_745_Closed_Text.style.display='none'; Codehighlighter1_647_745_Open_Image.style.display='inline'; Codehighlighter1_647_745_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> main()</span><span id=Codehighlighter1_647_745_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_647_745_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_662_674_Open_Image onclick="this.style.display='none'; Codehighlighter1_662_674_Open_Text.style.display='none'; Codehighlighter1_662_674_Closed_Image.style.display='inline'; Codehighlighter1_662_674_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_662_674_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_662_674_Closed_Text.style.display='none'; Codehighlighter1_662_674_Open_Image.style.display='inline'; Codehighlighter1_662_674_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> a[</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span id=Codehighlighter1_662_674_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_662_674_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> bl</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> node();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    bl</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">creatbst(a,</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    preorder(bt);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <img src ="http://m.shnenglu.com/life02/aggbug/96889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/life02/" target="_blank">life02</a> 2009-09-21 22:46 <a href="http://m.shnenglu.com/life02/archive/2009/09/21/96889.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>strlen婧愮爜鍓栨瀽錛堣漿錛?/title><link>http://m.shnenglu.com/life02/archive/2009/09/21/96884.html</link><dc:creator>life02</dc:creator><author>life02</author><pubDate>Mon, 21 Sep 2009 14:18:00 GMT</pubDate><guid>http://m.shnenglu.com/life02/archive/2009/09/21/96884.html</guid><wfw:comment>http://m.shnenglu.com/life02/comments/96884.html</wfw:comment><comments>http://m.shnenglu.com/life02/archive/2009/09/21/96884.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/life02/comments/commentRss/96884.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/life02/services/trackbacks/96884.html</trackback:ping><description><![CDATA[<p><a >http://blog.csdn.net/robinfoxnan/archive/2008/07/25/2712030.aspx</a><br>1. 綆鍗曞疄鐜?br>濡傛灉涓嶇鏁堢巼錛屾渶綆鍗曠殑瀹炵幇鍙渶瑕?琛屼唬鐮侊細</p> <p>1 size_t strlen_a(const char * str) {<br>2     size_t length = 0 ;<br>3     while (*str++ )<br>4         ++ length;<br>5     return  length;<br>6 } <br>涔熻鍙互紼嶅姞鏀硅繘濡備笅錛?/p> <p><br>1 size_t strlen_b(const char * str) {<br>2     const char *cp =  str;<br>3     while (*cp++ )<br>4          ;<br>5     return (cp - str - 1 );<br>6 } </p> <p>鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/robinfoxnan/archive/2008/07/25/2712030.aspx</a></p> <img src ="http://m.shnenglu.com/life02/aggbug/96884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/life02/" target="_blank">life02</a> 2009-09-21 22:18 <a href="http://m.shnenglu.com/life02/archive/2009/09/21/96884.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綾籹tring鐨勬瀯閫犲嚱鏁般佹嫹璐濇瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟http://m.shnenglu.com/life02/archive/2009/09/14/96085.htmllife02life02Mon, 14 Sep 2009 01:35:00 GMThttp://m.shnenglu.com/life02/archive/2009/09/14/96085.htmlhttp://m.shnenglu.com/life02/comments/96085.htmlhttp://m.shnenglu.com/life02/archive/2009/09/14/96085.html#Feedback4http://m.shnenglu.com/life02/comments/commentRss/96085.htmlhttp://m.shnenglu.com/life02/services/trackbacks/96085.htmlString 綾葷殑鍘熷瀷濡備笅

class String
{
   public:
          String(const char *str=NULL); //
鏋勯犲嚱鏁?/span>
          String(const String &other); //
鎷瘋礉鏋勯犲嚱鏁?/span>
          ~String(void); //
鏋愭瀯鍑芥暟
          String& operator=(const String &other); //
絳夊彿鎿嶄綔絎﹂噸杞?/span>

          ShowString();


   private:
          char *m_data; //
鎸囬拡
};


String::~String()
{
    delete [] m_data; //
鏋愭瀯鍑芥暟錛岄噴鏀懼湴鍧絀洪棿
}
String::String(const char *str)
{
    if (str==NULL)//
褰撳垵濮嬪寲涓蹭笉瀛樺湪鐨勬椂鍊欙紝涓?/span>m_data鐢寵涓涓┖闂村瓨鏀?/span>'\0'錛?/span>
     {
        m_data=new char[1];
        *m_data='\0';
     }
    else//
褰撳垵濮嬪寲涓插瓨鍦ㄧ殑鏃跺欙紝涓?/span>m_data鐢寵鍚屾牱澶у皬鐨勭┖闂村瓨鏀捐涓詫紱
     {
        int length=strlen(str);
        m_data=new char[length+1];
        strcpy(m_data,str);
     }
}


String::String(const String &other)//
鎷瘋礉鏋勯犲嚱鏁幫紝鍔熻兘涓庢瀯閫犲嚱鏁扮被浼箋?/span>
{
    int length=strlen(other.m_data);
    m_data=new [length+1];
    strcpy(m_data,other.m_data);
}
String& String::operator =(const String &other)
{
    if (this==&other)//
褰撳湴鍧鐩稿悓鏃訛紝鐩存帴榪斿洖錛?/span>
        return *this; 
 
    delete [] m_data;//
褰撳湴鍧涓嶇浉鍚屾椂錛屽垹闄ゅ師鏉ョ敵璇風殑絀洪棿錛岄噸鏂板紑濮嬫瀯閫狅紱

    int length=sizeof(other.m_data);
    m_data=new [length+1];
    strcpy(m_data,other.m_data);

    return *this; 
}

 

String::ShowString()//鐢變簬m_data鏄鏈夋垚鍛橈紝瀵硅薄鍙兘閫氳繃public鎴愬憳鍑芥暟鏉ヨ闂紱

{

      cout<<this->m_data<<endl;

}

 

 

 

main()
{
String AD;
char * p="ABCDE";
String B(p);
AD.ShowString();
AD=B;
AD.ShowString();


}



life02 2009-09-14 09:35 鍙戣〃璇勮
]]>
綾籹tring鐨勬瀯閫犲嚱鏁般佹嫹璐濇瀯閫犲嚱鏁板拰鏋愭瀯鍑芥暟http://m.shnenglu.com/life02/archive/2009/09/14/96086.htmllife02life02Mon, 14 Sep 2009 01:35:00 GMThttp://m.shnenglu.com/life02/archive/2009/09/14/96086.htmlhttp://m.shnenglu.com/life02/comments/96086.htmlhttp://m.shnenglu.com/life02/archive/2009/09/14/96086.html#Feedback0http://m.shnenglu.com/life02/comments/commentRss/96086.htmlhttp://m.shnenglu.com/life02/services/trackbacks/96086.htmlString 綾葷殑鍘熷瀷濡備笅

class String
{
   public:
          String(const char *str=NULL); //
鏋勯犲嚱鏁?/span>
          String(const String &other); //
鎷瘋礉鏋勯犲嚱鏁?/span>
          ~String(void); //
鏋愭瀯鍑芥暟
          String& operator=(const String &other); //
絳夊彿鎿嶄綔絎﹂噸杞?/span>

          ShowString();


   private:
          char *m_data; //
鎸囬拡
};


String::~String()
{
    delete [] m_data; //
鏋愭瀯鍑芥暟錛岄噴鏀懼湴鍧絀洪棿
}
String::String(const char *str)
{
    if (str==NULL)//
褰撳垵濮嬪寲涓蹭笉瀛樺湪鐨勬椂鍊欙紝涓?/span>m_data鐢寵涓涓┖闂村瓨鏀?/span>'\0'錛?/span>
     {
        m_data=new char[1];
        *m_data='\0';
     }
    else//
褰撳垵濮嬪寲涓插瓨鍦ㄧ殑鏃跺欙紝涓?/span>m_data鐢寵鍚屾牱澶у皬鐨勭┖闂村瓨鏀捐涓詫紱
     {
        int length=strlen(str);
        m_data=new char[length+1];
        strcpy(m_data,str);
     }
}


String::String(const String &other)//
鎷瘋礉鏋勯犲嚱鏁幫紝鍔熻兘涓庢瀯閫犲嚱鏁扮被浼箋?/span>
{
    int length=strlen(other.m_data);
    m_data=new [length+1];
    strcpy(m_data,other.m_data);
}
String& String::operator =(const String &other)
{
    if (this==&other)//
褰撳湴鍧鐩稿悓鏃訛紝鐩存帴榪斿洖錛?/span>
        return *this; 
 
    delete [] m_data;//
褰撳湴鍧涓嶇浉鍚屾椂錛屽垹闄ゅ師鏉ョ敵璇風殑絀洪棿錛岄噸鏂板紑濮嬫瀯閫狅紱

    int length=sizeof(other.m_data);
    m_data=new [length+1];
    strcpy(m_data,other.m_data);

    return *this; 
}

 

String::ShowString()//鐢變簬m_data鏄鏈夋垚鍛橈紝瀵硅薄鍙兘閫氳繃public鎴愬憳鍑芥暟鏉ヨ闂紱

{

      cout<<this->m_data<<endl;

}

 

 

 

main()
{
String AD;
char * p="ABCDE";
String B(p);
AD.ShowString();
AD=B;
AD.ShowString();


}



life02 2009-09-14 09:35 鍙戣〃璇勮
]]>
錛堣漿錛塪ynamic_cast錛宑onst_cast,static_cast,reinterpret_cast http://m.shnenglu.com/life02/archive/2009/09/14/96083.htmllife02life02Mon, 14 Sep 2009 00:07:00 GMThttp://m.shnenglu.com/life02/archive/2009/09/14/96083.htmlhttp://m.shnenglu.com/life02/comments/96083.htmlhttp://m.shnenglu.com/life02/archive/2009/09/14/96083.html#Feedback0http://m.shnenglu.com/life02/comments/commentRss/96083.htmlhttp://m.shnenglu.com/life02/services/trackbacks/96083.htmlhttp://www.cnblogs.com/cutepig/archive/2009/02/10/1387761.html
dynamic_cast:   閫氬父鍦ㄥ熀綾誨拰媧劇敓綾諱箣闂磋漿鎹㈡椂浣跨敤,run-time   cast  
   
  const_cast:   涓昏閽堝const鍜寁olatile鐨勮漿鎹?  
   
  static_cast:   涓鑸殑杞崲錛宯o   run-time   check.閫氬父錛屽鏋滀綘涓嶇煡閬撹鐢ㄥ摢涓紝灝辯敤榪欎釜銆? 
   
  reinterpret_cast:   鐢ㄤ簬榪涜娌℃湁浠諱綍鍏寵仈涔嬮棿鐨勮漿鎹紝姣斿涓涓瓧絎︽寚閽堣漿鎹負涓涓暣褰㈡暟銆?br>

http://blog.csdn.net/goodluckyxl/archive/2005/01/19/259851.aspx

寮哄埗杞寲鍥涚綾誨瀷鍙兘寰堝浜洪兘甯稿父蹇界暐灝辮薄鎴戜竴鏍鳳紝浣嗘槸鏈夋椂榪樻槸姣旇緝鏈夌敤鐨勩備笉浜嗚В鐨勫緩璁湅鐪嬶紝涓浜涙満鍒舵垜涔熶笉鏄崄鍒嗕簡瑙o紝鍙槸灝嗕竴浜涚敤娉曞啓鍑烘潵璁╁ぇ瀹剁湅鐪嬨?br>                                                            2004-11-27 9:00

寮哄埗杞寲鏃犺浠庤娉曡繕鏄鎰忎笂鐪嬶紝閮芥槸c++涓渶闅劇湅鐨勭壒寰佷箣涓銆備絾鏄熀浜巆椋庢牸鐨勮漿鍖栫殑璇箟鐨勪笉鏄庣‘鎬у強鍏朵竴浜涙綔鍦ㄩ棶棰樸傚己鍒剁被鍨嬭漿鍖栨渶緇堣繕鏄c++鎺ュ彈浜嗐?br>1.static_cast榪愮畻絎﹀彿
static_cast<T>(e),stroustrup璁╂垜浠彲浠ユ妸瀹冪湅鎴愰殣鍚漿鎹㈢殑鏄劇ず鐨勯嗚繍綆椼傝繖涓槸鏈変竴瀹氶亾鐞嗙殑錛屽熀浜庨殣寮忚漿鍖栫殑瀵硅薄綾誨瀷鎴戜滑鍙互浣跨敤static_cast杞寲榪愮畻絎﹀彿銆傚畠鏄潤鎬佺殑媯嫻嬶紝鏃犳硶榪愯鏃舵嫻嬬被鍨嬶紝鍦ㄧ戶鎵夸腑灝や負紿佸嚭銆?br>浣跨敤鑼冨洿
<1>鐢ㄤ簬鎵鏈夌郴緇熺被鍨嬩箣闂磋漿鍖栵紝涓嶈兘鐢ㄤ簬緋葷粺綾誨瀷鎸囬拡綾誨瀷杞寲
  double t_d = 0;
int t_i= static_cast<int>(t_d); //鏄悎娉曠殑杞寲
鑰屼紒鍥懼皢double*->int*鏄笉鍏佽鐨?br><2>鐢ㄤ簬緇ф壙綾諱箣闂寸殑杞寲錛堝惈鎸囬拡錛夛紝涓嶈兘鐢ㄤ簬鍏朵粬娌℃湁闅愬紡杞寲鐨勫璞$被鍨嬩箣闂寸殑杞寲
緇ф壙涓句緥:
class x
{
};
class y: public x
{
};
浣跨敤:x t_o_x;
y t_o_y = static_cast<y>(t_o_x); //x* y*杞寲涔熷彲浠ヨ繘琛屽洜涓簒,y緇ф壙鍏?br>//緋伙紝綾誨瀷鍙互鑷姩闅愬紡杞寲浣跨敤
   闅愬紡杞寲涓句緥:
class x
{
};
class y
{

public:
    y( x i_x ) {}
};
    x t_o_x;
     y t_o_y = static_cast<y>(t_o_x); //澶у鐪嬪埌y鏋勯犲嚱鏁板彲浠ュ浜巟綾誨瀷闅愬紡杞寲
//鎵浠ュ彲浠ュ皢x->y錛屽鏋滀紒鍥懼皢y->x浼氭姤閿?br>2.reinterpret_cast 榪愮畻
涓昏鐢ㄤ簬瀵逛簬綾誨瀷鎸囬拡綾誨瀷鐨勫己鍒惰漿鍖栵紝some_type* -> special_type*榪欐牱杞寲錛岀被鍨嬩俊鎭彲浠ユ槸涓嶅畬鍏ㄧ殑銆傚畠鍏佽灝嗕換鎰忔寚閽堣漿鍖栧埌鍏朵粬綾誨瀷鎸囬拡錛屼篃鍏佽浠繪剰鏁存暟綾誨瀷鍒頒換鎰忔寚閽堢被鍨嬭漿鍖?BT)銆傝繖鏍峰鑷寸殑緇撴灉鏄瀬鍏朵笉瀹夊叏鐨勶紝涓嶈兘瀹夊叏鐨勫簲鐢ㄤ簬鍏朵粬鐩殑錛岄櫎闈炶漿鍖栧埌鍘熸潵綾誨瀷銆?br><1> 浣跨敤鎵鏈夋暣褰㈠彲浠ヨ漿鍖栦負浠繪剰綾誨瀷鐨勬寚閽?鎸囬拡鏄?瀛楄妭鐨刲ong鐨勪笢涓滐紝閭d箞鏈哄櫒灝辮涓哄悓綾誨瀷灝辨槸鍙互杞寲)
int c;
x* p = reinterpret_cast<x*>(c); //x鏄嚜瀹氫箟鐨勪換鎰忕被鍨嬶紝褰撶劧鍖呮嫭緋葷粺綾誨瀷
<2> 鍙互瀵逛簬浠繪剰綾誨瀷鎸囬拡涔嬮棿杞寲
y* c;
x* p = reinterpret_cast<x*>(c);//x,y浠h〃鎵鏈夎嚜瀹氫箟鎴栫郴緇熺被鍨?br>澶у鍙互鐪嬪埌reinterpret_cast鐨勮漿鍖栨槸鏋佸害鐨勪笉璐熻矗浠葷殑錛屼粬鍙杞寲涓嶆嫻嬫槸鍚﹀彲浠ヨ漿鍖栥?br><3> const_cast榪愮畻絎﹀彿
榪欎釜寰堢畝鍗曚粠鍚嶅瓧澶у鍙互鐪嬪嚭鏉ワ紝浠呬粎涓轟簡鍘繪帀鎴栫潃鍔犱笂const淇グ絎﹀彿銆備絾鏄浜庢湰韜畾涔夋椂涓篶onst鐨勭被鍨嬶紝鍗充嬌浣犲幓鎺塩onst鎬э紝鍦ㄤ綘鎿嶄綔榪欑墖鍐呭鏃跺欎篃瑕佸皬蹇冿紝鍙兘r涓嶈兘w鎿嶄綔錛屽惁鍒欒繕鏄細鍑洪敊銆?br>const char* p = "123";
char* c = const_cast<char*>(p);
c[0] = 1;  //琛ㄩ潰涓婇氳繃緙栬瘧鍘繪帀浜哻onst鎬э紝浣嗘槸鎿嶄綔鍏跺湴鍧鏃剁郴緇熶緷鐒朵笉鍏佽榪?br>//涔堝仛銆傝繖鏄竴涓紡媧炲惂
<4> dynamic_cast榪愮畻絎﹀彿
Scott Mayers灝嗗叾鎻忚堪涓虹敤鏉ユ墽琛岀戶鎵夸綋緋諱腑錛氬畨鍏ㄧ殑鍚戜笅杞瀷鎴栬呰法緋昏漿鍨嬪姩浣溿備篃灝辨槸璇翠綘鍙互錛岀敤dynamic_cast灝?鎸囧悜base class鐨勬寚閽堟垨寮曠敤杞瀷涓?鎸囧悜瀛愮被鐨勫璞$殑鎸囬拡鎴栧紩鐢ㄣ?br>class B {};  //polymorphic綾誨瀷鍚玽irtual鎵嶈兘dynamic_cast
class D: public B {}
void f( B* pb )
{
    D* pd1 = dynamic_cast<D*>(pb);//濡傛灉pb涓篸綾誨瀷姝g‘榪斿洖錛屽鏋滀笉鏄繑鍥?
    D* pd2 = static_cast<D*>(pb); //涓嶇鎬庝箞鏍烽兘榪斿洖鎸囬拡鏈夊彲鑳芥寚鍚戜笉鍚堥傜殑瀵?br>//璞★紝鍥犱負static浠呬粎闈欐佹嫻嬶紝涓嶈兘寰楀埌榪?br>//琛屾椂瀵硅薄鐨勪俊鎭槸鍚︾湡姝d負D綾誨瀷
}

鍙嶆澶у鍦ㄤ嬌鐢ㄧ煡閬撴庝箞鐢ㄥ氨ok浜嗭紝c++寮哄埗杞寲鍦ㄦā鏉夸腑榪樻槸闈炲父鏈夌敤鐨勶紝鍏朵粬鏃跺欐湰浜轟篃鍠滄鐢╟鐨勮漿鍖栨柟渚褲俕_^     

http://www.vckbase.com/document/viewdoc/?id=1651

static_cast<>鎻瘑


浣滆咃細Sam NG

璇戣咃細灝忓垁浜?/a>


鍘熸枃閾炬帴錛?a >What static_cast<> is actually doing


鏈枃璁ㄨstatic_cast<> 鍜?reinterpret_cast<>銆?

浠嬬粛
澶у紼嬪簭鍛樺湪瀛++鍓嶉兘瀛﹁繃C錛屽茍涓斾範鎯簬C椋庢牸錛堢被鍨嬶級杞崲銆傚綋鍐機++錛堢▼搴忥級鏃訛紝鏈夋椂鍊欐垜浠湪浣跨敤static_cast<>鍜?reinterpret_cast<>鏃跺彲鑳戒細鏈夌偣妯$硦銆傚湪鏈枃涓紝鎴戝皢璇存槑static_cast<>瀹為檯涓婂仛浜嗕粈涔堬紝騫朵笖鎸囧嚭涓浜涘皢浼氬鑷撮敊璇殑鎯呭喌銆?br>
娉涘瀷錛圙eneric Types錛?/strong>

        float f = 12.3;

float* pf = &f;

// static cast<>

// 鎴愬姛緙栬瘧, n = 12

int n = static_cast<int>(f);

// 閿欒,鎸囧悜鐨勭被鍨嬫槸鏃犲叧鐨勶紙璇戞敞錛氬嵆鎸囬拡鍙橀噺pf鏄痜loat綾誨瀷錛岀幇鍦ㄨ琚漿鎹負int綾誨瀷錛?br> //int* pn = static_cast<int*>(pf);

//鎴愬姛緙栬瘧

void* pv = static_cast<void*>(pf);

//鎴愬姛緙栬瘧, 浣嗘槸 *pn2鏄棤鎰忎箟鐨勫唴瀛橈紙rubbish錛?br>
int* pn2 = static_cast<int*>(pv);


// reinterpret_cast<>

//閿欒,緙栬瘧鍣ㄧ煡閬撲綘搴旇璋冪敤static_cast<>

//int i = reinterpret_cast<int>(f);

//鎴愬姛緙栬瘧, 浣嗘槸 *pn 瀹為檯涓婃槸鏃犳剰涔夌殑鍐呭瓨,鍜?*pn2涓鏍?br>
int* pi = reinterpret_cast<int*>(pf);

綆鑰岃█涔嬶紝static_cast<> 灝嗗皾璇曡漿鎹紝涓句緥鏉ヨ錛屽float-鍒?integer錛岃宺einterpret_cast<>綆鍗曟敼鍙樼紪璇戝櫒鐨勬剰鍥鵑噸鏂拌冭檻閭d釜瀵硅薄浣滀負鍙︿竴綾誨瀷銆?br>
鎸囬拡綾誨瀷錛圥ointer Types錛?/strong>

鎸囬拡杞崲鏈夌偣澶嶆潅錛屾垜浠皢鍦ㄦ湰鏂囩殑鍓╀綑閮ㄥ垎浣跨敤涓嬮潰鐨勭被錛?br>
class CBaseX

{

public:

int x;

CBaseX() { x = 10; }

void foo() { printf("CBaseX::foo() x=%d\n", x); }

};

class CBaseY

{

public:

int y;

int* py;

CBaseY() { y = 20; py = &y; }

void bar() { printf("CBaseY::bar() y=%d, *py=%d\n", y, *py);
}

};


class CDerived : public CBaseX, public CBaseY

{

public:

int z;

};

鎯呭喌1錛氫袱涓棤鍏崇殑綾諱箣闂寸殑杞崲

      // Convert between CBaseX* and CBaseY*

// CBaseX* 鍜?CBaseY*涔嬮棿鐨勮漿鎹?br>
CBaseX* pX = new CBaseX();

// Error, types pointed to are unrelated

// 閿欒錛?綾誨瀷鎸囧悜鏄棤鍏崇殑

// CBaseY* pY1 = static_cast<CBaseY*>(pX);

// Compile OK, but pY2 is not CBaseX

// 鎴愬姛緙栬瘧, 浣嗘槸 pY2 涓嶆槸CBaseX

CBaseY* pY2 = reinterpret_cast<CBaseY*>(pX);

// System crash!!

// 緋葷粺宕╂簝!!

// pY2->bar();
姝e鎴戜滑鍦ㄦ硾鍨嬩緥瀛愪腑鎵璁よ瘑鍒扮殑錛屽鏋滀綘灝濊瘯杞崲涓涓璞″埌鍙︿竴涓棤鍏崇殑綾籹tatic_cast<>灝嗗け璐ワ紝鑰宺einterpret_cast<>灝辨繪槸鎴愬姛“嬈洪獥”緙栬瘧鍣細閭d釜瀵硅薄灝辨槸閭d釜鏃犲叧綾匯?br>
鎯呭喌2錛氳漿鎹㈠埌鐩稿叧鐨勭被
      1. CDerived* pD = new CDerived();

2. printf("CDerived* pD = %x\n", (int)pD);

3.

4. // static_cast<> CDerived* -> CBaseY* -> CDerived*

//鎴愬姛緙栬瘧錛岄殣寮弒tatic_cast<>杞崲

5. CBaseY* pY1 = pD;

6. printf("CBaseY* pY1 = %x\n", (int)pY1);

// 鎴愬姛緙栬瘧, 鐜板湪 pD1 = pD

7. CDerived* pD1 = static_cast<CDerived*>(pY1);

8. printf("CDerived* pD1 = %x\n", (int)pD1);

9.

10. // reinterpret_cast

// 鎴愬姛緙栬瘧, 浣嗘槸 pY2 涓嶆槸 CBaseY*

11. CBaseY* pY2 = reinterpret_cast<CBaseY*>(pD);

12. printf("CBaseY* pY2 = %x\n", (int)pY2);

13.

14. // 鏃犲叧鐨?static_cast<>

15. CBaseY* pY3 = new CBaseY();

16. printf("CBaseY* pY3 = %x\n", (int)pY3);

// 鎴愬姛緙栬瘧,灝界 pY3 鍙槸涓涓?"鏂?CBaseY()"

17. CDerived* pD3 = static_cast<CDerived*>(pY3);

18. printf("CDerived* pD3 = %x\n", (int)pD3);
      ---------------------- 杈撳嚭 ---------------------------

CDerived* pD = 392fb8

CBaseY* pY1 = 392fbc

CDerived* pD1 = 392fb8

CBaseY* pY2 = 392fb8

CBaseY* pY3 = 390ff0

CDerived* pD3 = 390fec


娉ㄦ剰錛氬湪灝咰Derived*鐢ㄩ殣寮?static_cast<>杞崲鍒癈BaseY*錛堢5琛岋級鏃訛紝緇撴灉鏄紙鎸囧悜錛塁Derived*錛堢殑鎸囬拡鍚戝悗錛?鍋忕Щ浜?錛堜釜瀛楄妭錛夛紙璇戞敞錛?涓篿nt綾誨瀷鍦ㄥ唴瀛樹腑鎵鍗犲瓧鑺傛暟錛夈備負浜嗙煡閬搒tatic_cast<> 瀹為檯濡備綍錛屾垜浠笉寰椾笉瑕佹潵鐪嬩竴涓婥Derived鐨勫唴瀛樺竷灞銆?/p>

CDerived鐨勫唴瀛樺竷灞錛圡emory Layout錛?/strong>



濡傚浘鎵紺猴紝CDerived鐨勫唴瀛樺竷灞鍖呮嫭涓や釜瀵硅薄錛孋BaseX 鍜?CBaseY錛岀紪璇戝櫒涔熺煡閬撹繖涓鐐廣傚洜姝わ紝褰撲綘灝咰Derived* 杞崲鍒?CBaseY*鏃訛紝瀹冪粰鎸囬拡娣誨姞4涓瓧鑺傦紝鍚屾椂褰撲綘灝咰BaseY*杞崲鍒癈Derived*鏃訛紝瀹冪粰鎸囬拡鍑忓幓4銆傜劧鑰岋紝鐢氳嚦瀹冨嵆渚夸笉鏄竴涓狢Derived浣犱篃鍙互榪欐牱鍋氥?br>褰撶劧錛岃繖涓棶棰樺彧鍦ㄥ鏋滀綘鍋氫簡澶氱戶鎵挎椂鍙戠敓銆傚湪浣犲皢CDerived杞崲 鍒?CBaseX鏃秙tatic_cast<> 鍜?reinterpret_cast<>鏄病鏈夊尯鍒殑銆?br>
鎯呭喌3錛歷oid*涔嬮棿鐨勫悜鍓嶅拰鍚戝悗杞崲

鍥犱負浠諱綍鎸囬拡鍙互琚漿鎹㈠埌void*錛岃寁oid*鍙互琚悜鍚庤漿鎹㈠埌浠諱綍鎸囬拡錛堝浜巗tatic_cast<> 鍜?reinterpret_cast<>杞崲閮藉彲浠ヨ繖鏍峰仛錛夛紝濡傛灉娌℃湁灝忓績澶勭悊鐨勮瘽閿欒鍙兘鍙戠敓銆?br>

    CDerived* pD = new CDerived();

printf("CDerived* pD = %x\n", (int)pD);

CBaseY* pY = pD; // 鎴愬姛緙栬瘧, pY = pD + 4

printf("CBaseY* pY = %x\n", (int)pY);


void* pV1 = pY; //鎴愬姛緙栬瘧, pV1 = pY

printf("void* pV1 = %x\n", (int)pV1);


// pD2 = pY, 浣嗘槸鎴戜滑棰勬湡 pD2 = pY - 4

CDerived* pD2 = static_cast<CDerived*>(pV1);

printf("CDerived* pD2 = %x\n", (int)pD2);

// 緋葷粺宕╂簝

// pD2->bar();

        ---------------------- 杈撳嚭 ---------------------------

CDerived* pD = 392fb8

CBaseY* pY = 392fbc

void* pV1 = 392fbc

CDerived* pD2 = 392fbc

涓鏃︽垜浠凡緇忚漿鎹㈡寚閽堜負void*錛屾垜浠氨涓嶈兘杞繪槗灝嗗叾杞崲鍥炲師綾匯傚湪涓婇潰鐨勪緥瀛愪腑錛屼粠涓涓獀oid* 榪斿洖CDerived*鐨勫敮涓鏂規硶鏄皢鍏惰漿鎹負CBaseY*鐒跺悗鍐嶈漿鎹負CDerived*銆?
浣嗘槸濡傛灉鎴戜滑涓嶈兘紜畾瀹冩槸CBaseY* 榪樻槸 CDerived*錛岃繖鏃舵垜浠笉寰椾笉鐢╠ynamic_cast<> 鎴杢ypeid[2]銆?br>
娉ㄩ噴錛?/strong>
1. dynamic_cast<>錛屼粠鍙︿竴鏂歸潰鏉ヨ錛屽彲浠ラ槻姝竴涓硾鍨婥BaseY* 琚漿鎹㈠埌CDerived*銆?br>2. dynamic_cast<>闇瑕佺被鎴愪負澶氭侊紝鍗沖寘鎷?#8220;铏?#8221;鍑芥暟錛屽茍鍥犳鑰屼笉鑳芥垚涓簐oid*銆?br>鍙傝冿細
1. [MSDN] C++ Language Reference -- Casting
2. Nishant Sivakumar, Casting Basics - Use C++ casts in your VC++.NET programs
3. Juan Soulie, C++ Language Tutorial: Type Casting
鎺ㄨ崘閾炬帴錛?/strong>濡備綍鍦ㄨ繍琛屾椂紜畾瀵硅薄綾誨瀷錛圧TTI錛?/a>



life02 2009-09-14 08:07 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美搞黄网站| 久久久久久精| 香蕉成人啪国产精品视频综合网| 久久尤物视频| 午夜视频一区| 亚洲综合国产| 香蕉久久国产| 久久激情综合网| 久久天天狠狠| 欧美精品一区二区三区高清aⅴ| 久久久久久久久久码影片| 久久久国产成人精品| 久久久久久久久蜜桃| 免费成人性网站| 欧美精品免费在线| 国产精品永久入口久久久| 国产视频欧美| 最新成人av在线| 亚洲欧美日韩国产一区二区三区| 午夜在线电影亚洲一区| 久久久亚洲影院你懂的| 亚洲电影网站| 一本久久青青| 欧美在线中文字幕| 欧美日本一区二区三区| 国产亚洲女人久久久久毛片| 亚洲人成啪啪网站| 欧美诱惑福利视频| 亚洲激情婷婷| 久久精品国产久精国产爱| 欧美日韩高清免费| 黑人巨大精品欧美一区二区小视频| 亚洲国产乱码最新视频| 午夜影院日韩| 日韩视频亚洲视频| 麻豆精品91| 国产一区二区无遮挡| 一区二区三区视频在线观看| 老色批av在线精品| 亚洲综合清纯丝袜自拍| 欧美精品videossex性护士| 国产在线精品成人一区二区三区 | 国产欧美日韩综合| 亚洲精品综合| 欧美1区免费| 欧美主播一区二区三区美女 久久精品人 | 日韩一区二区久久| 久久九九国产| 美女尤物久久精品| 亚洲国产清纯| 中文欧美在线视频| 欧美国产日本高清在线| 国产亚洲欧美色| 午夜精品久久久久影视| 亚洲国产精品第一区二区| 性久久久久久久| 国产伦精品免费视频| 午夜精品久久久久影视 | 国产一区二区无遮挡| 中文成人激情娱乐网| 亚洲激情六月丁香| 欧美va天堂| 亚洲乱码日产精品bd| 亚洲国产成人精品视频| 欧美福利小视频| 日韩视频免费观看高清在线视频 | 亚洲综合色在线| 国产九九视频一区二区三区| 午夜精品区一区二区三| 亚洲一区二区成人| 国产日韩欧美三级| 久久综合影视| 六月婷婷久久| 一本色道久久88综合日韩精品| 亚洲欧洲综合| 国产精品久久久久久久久久久久久久| 在线一区二区三区四区| 在线亚洲国产精品网站| 国产日韩欧美中文| 欧美激情视频在线免费观看 欧美视频免费一| 久久精品日韩| 亚洲精品乱码久久久久久蜜桃91| 亚洲国产另类久久精品| 欧美日韩亚洲激情| 久久久91精品国产一区二区精品| 久久超碰97人人做人人爱| 亚洲国产精品黑人久久久| 亚洲成色精品| 欧美日韩亚洲一区二区三区在线| 亚洲女性裸体视频| 久久青青草综合| 一区二区三区不卡视频在线观看 | 久久九九热免费视频| 尤物九九久久国产精品的特点| 免费视频一区| 国产精品成人aaaaa网站 | 亚洲欧美日本国产专区一区| 欧美亚洲一区二区在线| 91久久精品国产91久久性色| 一本色道久久综合精品竹菊 | 一本久道综合久久精品| 国产欧美va欧美va香蕉在| 模特精品在线| 欧美日韩在线一区二区| 久久久久欧美| 亚洲欧美在线视频观看| 久久精品首页| 亚洲综合久久久久| 久久久久综合网| 亚洲免费视频网站| 老司机精品视频一区二区三区| 亚洲无限乱码一二三四麻| 久久久91精品国产一区二区三区| 欧美岛国激情| 久久精品日产第一区二区| 欧美精品乱码久久久久久按摩| 久久精品成人一区二区三区蜜臀| 麻豆精品91| 久久国产精品一区二区三区四区 | 欧美国产精品一区| 久久精品国产亚洲一区二区三区| 欧美黄免费看| 美女精品自拍一二三四| 国产精品三区www17con| 亚洲精品美女在线观看播放| 伊人久久综合97精品| 亚洲综合色视频| 亚洲欧美成人一区二区三区| 欧美激情偷拍| 亚洲成人资源| 91久久精品日日躁夜夜躁欧美 | 久久gogo国模啪啪人体图| 欧美日韩国产综合新一区| 欧美~级网站不卡| 国内揄拍国内精品久久| 亚洲欧美日韩国产综合精品二区| 一区二区高清在线| 欧美成va人片在线观看| 欧美成人在线免费视频| **网站欧美大片在线观看| 久久www免费人成看片高清| 久久精品系列| 激情av一区| 久久久噜噜噜久噜久久| 久久综合狠狠| 亚洲国产精品电影| 国产精品国产三级国产aⅴ浪潮| 亚洲电影成人| 欧美日韩二区三区| 亚洲电影第三页| 亚洲精品黄色| 欧美人与性动交cc0o| 亚洲精品影院| 亚洲欧美激情一区| 国产欧美韩日| 久久久久久久波多野高潮日日| 美女91精品| 亚洲精品综合久久中文字幕| 欧美激情一区二区三区全黄 | 亚洲国产成人在线视频| 日韩视频在线观看| 欧美亚一区二区| 亚洲视频中文| 久久中文字幕导航| 91久久一区二区| 欧美三区免费完整视频在线观看| 在线亚洲欧美| 免费在线亚洲欧美| 日韩视频第一页| 国产精品视频yy9099| 久久成人精品| 亚洲人成人77777线观看| 亚洲自拍偷拍一区| 韩国三级电影一区二区| 欧美日韩视频在线第一区| 亚洲欧美经典视频| 亚洲丰满少妇videoshd| 亚洲桃色在线一区| 国产综合在线视频| 欧美日韩精品综合在线| 欧美一区二区三区喷汁尤物| 亚洲福利国产| 久久一区亚洲| 欧美一区二区三区免费观看| 久久久噜噜噜久噜久久| 亚洲黄网站黄| 欧美一区二区在线播放| 亚洲国产成人在线视频| 欧美日韩精品久久久| 久久国产精品黑丝| 日韩一级不卡| 欧美成年人网站| 欧美资源在线观看| 亚洲一级网站| 91久久线看在观草草青青| 国产伦精品一区二区三区免费| 久久午夜电影网| 亚洲小少妇裸体bbw| 亚洲国产综合91精品麻豆| 另类尿喷潮videofree |