锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产欧美日韩精品a在线观看,国产精品久久一区主播,欧美一区视频在线http://www.shnenglu.com/LittleStar/ O(鈭鈭?O 灝忔湀浜殑fans ^_^zh-cnMon, 22 Dec 2025 07:39:46 GMTMon, 22 Dec 2025 07:39:46 GMT60銆愯漿銆戝鎬?Polymorphism)鐨勫疄鐜版満鍒?涓?錛嶏紞C++綃?/title><link>http://www.shnenglu.com/LittleStar/archive/2009/10/20/99063.html</link><dc:creator>Little Star</dc:creator><author>Little Star</author><pubDate>Tue, 20 Oct 2009 13:36:00 GMT</pubDate><guid>http://www.shnenglu.com/LittleStar/archive/2009/10/20/99063.html</guid><wfw:comment>http://www.shnenglu.com/LittleStar/comments/99063.html</wfw:comment><comments>http://www.shnenglu.com/LittleStar/archive/2009/10/20/99063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/LittleStar/comments/commentRss/99063.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/LittleStar/services/trackbacks/99063.html</trackback:ping><description><![CDATA[<p>澶氭?Polymorphism)鏄潰鍚戝璞$殑鏍稿績姒傚康錛屾湰鏂囦互C++涓轟緥錛岃璁哄鎬佺殑鍏蜂綋瀹炵幇銆侰++涓鎬佸彲浠ュ垎涓哄熀浜庣戶鎵垮拰铏氬嚱鏁扮殑鍔ㄦ佸鎬佷互鍙婂熀浜庢ā鏉跨殑闈欐佸鎬侊紝濡傛灉娌℃湁鐗瑰埆鎸囨槑錛屾湰鏂囦腑鍑虹幇鐨勫鎬侀兘鏄寚鍓嶈咃紝涔熷氨鏄熀浜庣戶鎵垮拰铏氬嚱鏁扮殑鍔ㄦ佸鎬併傝嚦浜庝粈涔堟槸澶氭侊紝鍦ㄩ潰鍚戝璞′腑濡備綍浣跨敤澶氭侊紝浣跨敤澶氭佺殑濂藉絳夌瓑闂錛屽鏋滃ぇ瀹舵劅鍏磋叮鐨勮瘽錛屽彲浠ユ壘鏈潰鍚戝璞$殑涔︽潵鐪嬬湅銆?br>    涓轟簡鏂逛究璇存槑錛屼笅闈婦涓涓畝鍗曠殑浣跨敤澶氭佺殑渚嬪瓙(From [1] )錛?/p> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Shape<br>{<br>protected:<br>  int m_x;    // X coordinate<br>  int m_y;  // Y coordinate<br>public:<br>  // Pure virtual function for drawing<br>  virtual void Draw() = 0;  <br><br>  // A regular virtual function<br>  virtual void MoveTo(int newX, int newY);<br><br> // Regular method, not overridable.<br>  void Erase();<br><br>  // Constructor for Shape<br>  Shape(int x, int y); <br><br> // Virtual destructor for Shape<br>  virtual ~Shape();<br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">// Circle class declaration<br>class Circle : public Shape<br>{<br>private:<br>   int m_radius;    // Radius of the circle <br>public:<br>   // Override to draw a circle<br>   virtual void Draw();    <br><br>   // Constructor for Circle<br>   Circle(int x, int y, int radius);<br><br>  // Destructor for Circle<br>   virtual ~Circle();<br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">// Shape constructor implementation<br>Shape::Shape(int x, int y)<br>{<br>   m_x = x;<br>   m_y = y;<br>}<br>// Shape destructor implementation<br>Shape::~Shape()<br>{<br>//...<br>}</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"> // Circle constructor implementation<br>Circle::Circle(int x, int y, int radius) : Shape (x, y)<br>{<br>   m_radius = radius;<br>}<br><br>// Circle destructor implementation<br>Circle::~Circle()<br>{<br>//...<br>}<br><br>// Circle override of the pure virtual Draw method.<br>void Circle::Draw()<br>{<br>   glib_draw_circle(m_x, m_y, m_radius);<br>}</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"><br>main()<br>{<br>  // Define a circle with a center at (50,100) and a radius of 25<br>  Shape *pShape = new Circle(50, 100, 25);<br><br>  // Define a circle with a center at (5,5) and a radius of 2<br>  Circle aCircle(5,5, 2);<br><br>  // Various operations on a Circle via a Shape pointer<br><strong>  //</strong>Polymorphism<br><strong>  pShape->Draw();</strong><br><strong>  pShape->MoveTo(100, 100);<br><br></strong>  pShape->Erase();<br>  delete pShape;<br><br> // Invoking the Draw method directly<br>  aCircle.Draw();<br>}    </div> <p>     渚嬪瓙涓嬌鐢ㄥ埌澶氭佺殑浠g爜浠ラ粦浣撴爣鍑轟簡錛屽畠浠竴涓緢鏄庢樉鐨勭壒寰佸氨鏄氳繃涓涓熀綾葷殑鎸囬拡錛堟垨鑰呭紩鐢級鏉ヨ皟鐢ㄤ笉鍚屽瓙綾葷殑鏂規硶銆?br>     閭d箞錛岀幇鍦ㄧ殑闂鏄紝榪欎釜鍔熻兘鏄庢牱瀹炵幇鐨勫憿錛熸垜浠彲浠ュ厛鏉ュぇ姒傜寽嫻嬩竴涓嬶細瀵逛簬涓鑸殑鏂規硶璋冪敤錛屽埌浜嗘眹緙栦唬鐮佽繖涓灞傛鐨勬椂鍊欙紝涓鑸兘鏄嬌鐢?Call funcaddr 榪欐牱鐨勬寚浠よ繘琛岃皟鐢紝鍏朵腑funcaddr鏄璋冪敤鍑芥暟鐨勫湴鍧銆傛寜鐞嗘潵璇達紝褰撴垜浣跨敤鎸囬拡pShape鏉ヨ皟鐢―raw鐨勬椂鍊欙紝緙栬瘧鍣ㄥ簲璇ュ皢Shape::Draw鐨勫湴鍧璧嬬粰funcaddr錛岀劧鍚嶤all 鎸囦護灝卞彲浠ョ洿鎺ヨ皟鐢⊿hape::Draw浜嗭紝榪欏氨璺熺敤pShape鏉ヨ皟鐢⊿hape::Erase涓鏍楓備絾鏄紝榪愯緇撴灉鍗村憡璇夋垜浠紝緙栬瘧鍣ㄨ祴緇檉uncaddr鐨勫煎嵈鏄疌ircle::Drawde鐨勫箋傝繖灝辮鏄庯紝緙栬瘧鍣ㄥ湪瀵瑰緟Draw鏂規硶鍜孍rase鏂規硶鏃朵嬌鐢ㄤ簡鍙岄噸鏍囧噯銆傞偅涔堢┒绔熸槸璋佹湁榪欎箞澶х殑娉曞姏錛屼嬌緙栬瘧鍣ㄨ繖涓搧闈㈡棤縐佺殑鍒ゅ畼閮借鍙︾溂鐩哥湅鍛紵<strong>virtual錛侊紒<br>     </strong>Clever錛侊紒姝f槸virtual榪欎釜鍏抽敭瀛椾竴鎵嬪婕斾簡榪欎竴鍑?#8220;涔懼潳澶ф尓縐?#8221;鐨勫ソ鎴忋傝閬撹繖閲岋紝鎴戜滑鍏堣鏄庣‘涓や釜姒傚康錛氶潤鎬佺粦瀹氬拰鍔ㄦ佺粦瀹氥?br>    1銆侀潤鎬佺粦瀹氾紙static bingding錛夛紝涔熷彨鏃╂湡緇戝畾錛岀畝鍗曟潵璇村氨鏄紪璇戝櫒鍦ㄧ紪璇戞湡闂村氨鏄庣‘鐭ラ亾鎵瑕佽皟鐢ㄧ殑鏂規硶錛屽茍灝嗚鏂規硶鐨勫湴鍧璧嬬粰浜咰all鎸囦護鐨刦uncaddr銆傚洜姝わ紝榪愯鏈熼棿鐩存帴浣跨敤Call鎸囦護灝卞彲璋冪敤鍒扮浉搴旂殑鏂規硶銆?br>    2銆佸姩鎬佺粦瀹氾紙dynamic binding錛夛紝涔熷彨鏅氭湡緇戝畾錛屼笌闈欐佺粦瀹氫笉鍚岋紝鍦ㄧ紪璇戞湡闂達紝緙栬瘧鍣ㄥ茍涓嶈兘鏄庣‘鐭ラ亾絀剁珶瑕佽皟鐢ㄧ殑鏄摢涓涓柟娉曪紝鑰岃繖錛岃鐭ラ亾榪愯鏈熼棿浣跨敤鐨勫叿浣撴槸鍝釜瀵硅薄鎵嶈兘鍐沖畾銆?br>    濂戒簡錛屾湁浜嗚繖涓や釜姒傚康浠ュ悗錛屾垜浠氨鍙互璇達紝virtual鐨勪綔鐢ㄥ氨鏄憡璇夌紪璇戝櫒錛氭垜瑕佽繘琛屽姩鎬佺粦瀹氾紒緙栬瘧鍣ㄥ綋鐒朵細灝婇噸浣犵殑鎰忚錛岃屼笖涓轟簡瀹屾垚浣犺繖涓姹傦紝緙栬瘧鍣ㄨ繕瑕佸仛寰堝鐨勪簨鎯咃細緙栬瘧鍣ㄨ嚜鍔ㄥ湪澹版槑浜唙irtual鏂規硶鐨勭被涓彃鍏ヤ竴涓寚閽坴ptr鍜屼竴涓暟鎹粨鏋刅Table錛坴ptr鐢ㄤ互鎸囧悜VTable錛沄Table鏄竴涓寚閽堟暟緇勶紝閲岄潰瀛樻斁鐫鍑芥暟鐨勫湴鍧錛夛紝騫朵繚璇佷簩鑰呴伒瀹堜笅闈㈢殑瑙勫垯錛?br>    1銆乂Table涓彧鑳藉瓨鏀懼0鏄庝負virtual鐨勬柟娉曪紝鍏跺畠鏂規硶涓嶈兘瀛樻斁鍦ㄩ噷闈€傚湪涓婇潰鐨勪緥瀛愪腑錛孲hape鐨刅Table涓氨鍙湁Draw錛孧oveTo鍜寏Shape銆傛柟娉旹rase鐨勫湴鍧騫朵笉鑳藉瓨鏀懼湪VTable涓傛澶栵紝濡傛灉鏂規硶鏄函铏氬嚱鏁幫紝濡? Draw錛岄偅涔堝悓鏍瘋鍦╒Table涓繚鐣欑浉搴旂殑浣嶇疆錛屼絾鏄敱浜庣函铏氬嚱鏁版病鏈夊嚱鏁頒綋錛屽洜姝よ浣嶇疆涓茍涓嶅瓨鏀綝raw鐨勫湴鍧錛岃屾槸鍙互閫夋嫨瀛樻斁涓涓嚭閿欏鐞嗙殑鍑芥暟鐨勫湴鍧錛屽綋璇ヤ綅緗鎰忓璋冪敤鏃訛紝鍙互鐢ㄥ嚭閿欏嚱鏁拌繘琛岀浉搴旂殑澶勭悊銆?br>    2銆佹淳鐢熺被鐨刅Talbe涓褰曠殑浠庡熀綾諱腑緇ф壙涓嬫潵鐨勮櫄鍑芥暟鍦板潃鐨勭儲寮曞彿蹇呴』璺熻铏氬嚱鏁板湪鍩虹被VTable涓殑绱㈠紩鍙蜂繚鎸佷竴鑷淬傚鍦ㄤ笂渚嬩腑錛屽鏋滃湪Shape鐨刅Talbe涓紝Draw涓? 1 鍙鳳紝 MoveTo 2 鍙鳳紝~Shape涓?3 鍙鳳紝閭d箞錛屼笉綆¤繖浜涙柟娉曞湪Circle涓槸鎸夌収浠涔堥『搴忓畾涔夌殑錛孋ircle鐨刅Table涓兘蹇呴』淇濊瘉Draw涓? 1 鍙鳳紝MoveTo涓?2鍙楓傝嚦浜?3鍙鳳紝榪欓噷鏄瘇Circle銆備負浠涔堜笉鏄瘇Shape鍟婏紵鍢垮樋錛屽繕鍟︼紝鏋愭瀯鍑芥暟涓嶄細緇ф壙鐨勩?br>    3銆乿ptr鏄敱緙栬瘧鍣ㄨ嚜鍔ㄦ彃鍏ョ敓鎴愮殑錛屽洜姝ょ紪璇戝櫒蹇呴』璐熻矗涓哄叾榪涜鍒濆鍖栥傚垵濮嬪寲鐨勬椂闂撮夊湪瀵硅薄鍒涘緩鏃訛紝鑰屽湴鐐瑰氨鍦ㄦ瀯閫犲嚱鏁頒腑銆傚洜姝わ紝緙栬瘧鍣ㄥ繀欏諱繚璇佹瘡涓被鑷沖皯鏈変竴涓瀯閫犲嚱鏁幫紝鑻ユ病鏈夛紝鑷姩涓哄叾鐢熸垚涓涓粯璁ゆ瀯閫犲嚱鏁般?br>     4銆乿ptr閫氬父鏀懼湪瀵硅薄鐨勮搗濮嬪錛屼篃灝辨槸Addr(obj) == Addr(obj.vptr)銆?br>    浣犵湅錛屽ぉ涓嬫灉鐒舵病鏈夊厤璐圭殑鍗堥錛屼負浜嗗疄鐜板姩鎬佺粦瀹氾紝緙栬瘧鍣ㄨ涓烘垜浠粯榛樺共浜嗚繖涔堝鐨勮剰璇濈瘡媧匯傚鏋滀綘鎯充綋楠屼竴涓嬬紪璇戝櫒鐨勮緵鍔籌紝閭d箞鍙互灝濊瘯鐢–璇█妯℃嫙涓涓嬩笂闈㈢殑琛屼負錛屻?銆戜腑灝辨湁榪欎箞涓涓緥瀛愩傚ソ浜嗭紝鐜板湪涓囦簨鍏峰錛屽彧嬈犱笢椋庝簡銆傜紪璇戯紝榪炴帴錛岃澆鍏ワ紝GO錛佸綋紼嬪簭鎵ц鍒? <strong>pShape->Draw()</strong>鐨勬椂鍊欙紝涓婇潰鐨勮鏂戒篃寮濮嬭搗浣滅敤浜嗐傘?br>    鍓嶉潰宸茬粡鎻愬埌錛屾櫄鏈熺粦瀹氭椂涔嬫墍浠ヤ笉鑳界‘瀹氳皟鐢ㄥ摢涓嚱鏁幫紝鏄洜涓哄叿浣撶殑瀵硅薄涓嶇‘瀹氥傚ソ浜嗭紝褰撹繍琛屽埌<strong>pShape->Draw()</strong>鏃訛紝瀵硅薄鍑烘潵浜嗭紝瀹冪敱pShape鎸囬拡鏍囧嚭銆傛垜浠壘鍒拌繖涓璞″悗錛屽氨鍙互鎵懼埌瀹冮噷闈㈢殑vptr錛堝湪瀵硅薄鐨勮搗濮嬪錛夛紝鏈変簡vptr鍚庯紝鎴戜滑灝辨壘鍒頒簡VTable錛岃皟鐢ㄧ殑鍑芥暟灝卞湪鐪煎墠浜嗐傘傜瓑絳夛紝VTable涓柟娉曢偅涔堝錛屾垜絀剁珶浣跨敤鍝釜鍛紵涓嶇敤鐫鎬ワ紝緙栬瘧鍣ㄦ棭宸蹭負鎴戜滑鍋氬ソ浜嗚褰曪細緙栬瘧鍣ㄥ湪鍒涘緩VTable鏃訛紝宸茬粡涓烘瘡涓獀irtual鍑芥暟瀹夋帓濂戒簡搴ф錛屽茍涓旀妸榪欎釜绱㈠紩鍙瘋褰曚簡涓嬫潵銆傚洜姝わ紝褰撶紪璇戝櫒瑙f瀽鍒?strong>pShape->Draw()</strong>鐨勬椂鍊欙紝瀹冨凡緇忔倓鎮勭殑灝嗗嚱鏁扮殑鍚嶅瓧鐢ㄧ儲寮曞彿鏉ヤ唬鏇夸簡銆傝繖鏃跺欙紝鎴戜滑閫氳繃榪欎釜绱㈠紩鍙峰氨鍙互鍦╒Table涓緱鍒頒竴涓嚱鏁板湴鍧錛孋all it錛?br>    鍦ㄨ繖閲岋紝鎴戜滑灝變綋浼氬埌涓轟粈涔堜細鏈夌浜屾潯瑙勫畾浜嗭紝閫氬父錛屾垜浠兘鏄敤鍩虹被鐨勬寚閽堟潵寮曠敤媧劇敓綾葷殑瀵硅薄錛屼絾鏄笉綆″叿浣撳璞℃槸鍝釜媧劇敓綾葷殑錛屾垜浠兘鍙互浣跨敤鐩稿悓鐨勭儲寮曞彿鏉ュ彇寰楀搴旂殑鍑芥暟瀹炵幇銆?br>     鐜板疄涓湁涓涓緥瀛愬叾瀹炶窡榪欎釜铔儚鐨勶細鎶ヨ鐢佃瘽鏈?10錛?19錛?20錛圴Table涓笉鍚岀殑鏂規硶錛夈備笉鍚屽湴鏂圭殑浜烘嫧鎵撲笉鍚岀殑鍙風爜鎵浜х敓鐨勭粨鏋滈兘鏄笉涓鏍風殑銆傝濡傦紝鍦ㄤ笁鐜鐨勪竴涓漢錛堝叿浣撳璞★級璺熶竴鐜唴鐨勪竴涓漢錛堝彟澶栦竴涓叿浣撳璞★級鎵?19錛屾渶鍚庤皟鐢ㄧ殑娑堥槻闃熻偗瀹氭槸涓嶄竴鏍風殑錛岃繖灝辨槸澶氭佷簡銆傝繖鏄庝箞瀹炵幇鐨勫憿錛屾瘡涓漢閮界煡閬撲竴涓姤璀︿腑蹇冿紙VTable錛岄噷闈㈡湁涓変釜鏂規硶 110錛?19錛?20錛夈傚鏋滀笁鐜鐨勪竴涓漢闇瑕佺伀璀︽姠闄╋紙涓涓叿浣撳璞★級鏃訛紝瀹冨氨鎷ㄦ墦119錛屼絾鏄粬鑲畾涓嶇煡閬撴渶鍚庢槸鍝竴涓秷闃查槦浼氬嚭鐜扮殑銆傝繖寰楁湁鎶ヨ涓績鏉ュ喅瀹氾紝鎶ヨ涓績閫氳繃榪欎釜鍏蜂綋瀵硅薄錛堜緥瀛愪腑灝辨槸鍏蜂綋浣嶇疆浜嗭級浠ュ強浠栬鎷ㄦ墦鐨勭數璇濆彿鐮侊紙鍙互鐞嗚В鎴愮儲寮曞彿錛夛紝鎶ヨ涓績鍙互紜畾搴旇璋冨害鍝竴涓秷闃查槦榪涜鎶㈤櫓錛堜笉鍚岀殑鍔ㄤ綔錛夈?br>     榪欐牱錛岄氳繃vptr鍜孷Table鐨勫府鍔╋紝鎴戜滑灝卞疄鐜頒簡C++鐨勫姩鎬佺粦瀹氥傚綋鐒訛紝榪欎粎浠呮槸鍗曠戶鎵挎椂鐨勬儏鍐碉紝澶氶噸緇ф壙鐨勫鐞嗚鐩稿澶嶆潅涓鐐癸紝涓嬮潰綆瑕佽涓涓嬫渶綆鍗曠殑澶氶噸緇ф壙鐨勬儏鍐碉紝鑷充簬铏氱戶鎵跨殑鎯呭喌錛屾湁鍏磋叮鐨勬湅鍙嬪彲浠ョ湅鐪? Lippman鐨勩奍nside the C++ Object Model銆嬶紝榪欓噷鏆傛椂灝變笉灞曞紑浜嗐傦紙涓昏鏄嚜宸辮繕娌℃悶娓呮錛屽喌涓旂幇鍦ㄥ閲嶇戶鎵塊兘涓嶆庝箞浣跨敤浜嗭紝铏氱戶鎵垮簲鐢ㄧ殑鏈轟細灝辨洿灝戜簡錛?br>     棣栧厛錛屾垜瑕佸厛璇翠竴涓嬪閲嶇戶鎵夸笅瀵硅薄鐨勫唴瀛樺竷灞錛屼篃灝辨槸璇磋瀵硅薄鏄浣曞瓨鏀炬湰韜殑鏁版嵁鐨勩?/p> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Cute<br>{<br>public:<br> int i;<br> virtual void cute(){ cout<<"Cute cute"<<endl; }<br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Pet<br>{<br>public:<br>   int j;<br>   virtual void say(){ cout<<"Pet say"<<endl;  }<br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Dog : public Cute,public Pet<br>{<br>public:<br> int z;<br> void cute(){ cout<<"Dog cute"<<endl; }<br> void say(){ cout<<"Dog say"<<endl;  }<br>};</div> <p>    鍦ㄤ笂闈㈣繖涓緥瀛愪腑錛屼竴涓狣og瀵硅薄鍦ㄥ唴瀛樹腑鐨勫竷灞濡備笅鎵紺猴細                    </p> <p> <table style="border: medium none ; border-collapse: collapse;" class="MsoTableGrid" border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 59.4pt;" width="79"> <p style="margin: 0cm 0cm 0pt; text-align: center;" class="MsoNormal" align="center"><strong><span lang="en">Dog</span></strong></p> </td> </tr> <tr> <td style="border-style: none solid solid; border-color: #ece9d8 windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79" valign="top"> <p style="margin: 0cm 0cm 0pt;" class="MsoNormal"><span lang="en">Vptr1</span></p> </td> </tr> <tr> <td style="border-style: none solid solid; border-color: #ece9d8 windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79" valign="top"> <p style="margin: 0cm 0cm 0pt;" class="MsoNormal"><span lang="en">Cute::i</span></p> </td> </tr> <tr> <td style="border-style: none solid solid; border-color: #ece9d8 windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79" valign="top"> <p style="margin: 0cm 0cm 0pt;" class="MsoNormal"><span lang="en">Vptr2</span></p> </td> </tr> <tr> <td style="border-style: none solid solid; border-color: #ece9d8 windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79" valign="top"> <p style="margin: 0cm 0cm 0pt;" class="MsoNormal"><span lang="en">Pet::j</span></p> </td> </tr> <tr> <td style="border-style: none solid solid; border-color: #ece9d8 windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; background-color: transparent; width: 59.4pt;" width="79" valign="top"> <p style="margin: 0cm 0cm 0pt;" class="MsoNormal"><span lang="en">Dog::z</span></p> </td> </tr> </tbody> </table> <br>     涔熷氨鏄錛屽湪Dog瀵硅薄涓紝浼氬瓨鍦ㄤ袱涓獀ptr,姣忎竴涓窡鎵緇ф壙鐨勭埗綾葷浉瀵瑰簲銆傚鏋滄垜浠鎯沖疄鐜板鎬侊紝灝卞繀欏誨湪瀵硅薄涓噯紜湴鎵懼埌鐩稿簲鐨剉ptr錛屼互璋冪敤涓嶅悓鐨勬柟娉曘備絾鏄紝濡傛灉鏍規嵁鍗曠戶鎵挎椂鐨勯昏緫錛屼篃灝辨槸vptr鏀懼湪鎸囬拡鎸囧悜浣嶇疆鐨勮搗濮嬪錛岄偅涔堬紝瑕佸湪澶氶噸緇ф壙鎯呭喌涓嬪疄鐜幫紝鎴戜滑蹇呴』淇濊瘉鍦ㄥ皢涓涓淳鐢熺被鐨勬寚閽堥殣寮忔垨鑰呮樉寮忓湴杞崲鎴愪竴涓埗綾葷殑鎸囬拡鏃訛紝寰楀埌鐨勭粨鏋滄寚鍚戠浉搴旀淳鐢熺被鏁版嵁鍦―og瀵硅薄涓殑璧峰浣嶇疆銆傚垢濂斤紝榪欏伐浣滅紪璇戝櫒宸茬粡甯垜浠畬鎴愪簡銆備笂闈㈢殑渚嬪瓙涓紝濡傛灉Dog鍚戜笂杞崲鎴怭et鐨勮瘽錛岀紪璇戝櫒浼氳嚜鍔ㄨ綆桺et鏁版嵁鍦―og瀵硅薄涓殑鍋忕Щ閲忥紝璇ュ亸縐婚噺鍔犱笂Dog瀵硅薄鐨勮搗濮嬩綅緗紝灝辨槸Pet鏁版嵁鐨勫疄闄呭湴鍧浜嗐?/p> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">int main()<br>{<br> Dog* d = new Dog();<br> cout<<"Dog object addr : "<<d<<endl;<br> Cute* c = d;<br> cout<<"Cute type addr : "<<c<<endl;<br> Pet* p = d;<br> cout<<"Pet type addr : "<<p<<endl;<br> delete d;<br>}<br></div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">output:<br>Dog object addr : 0x3d24b0<br>Cute type addr : 0x3d24b0<br>Pet type addr : 0x3d24b8   // 姝eソ鎸囧悜Dog瀵硅薄鐨剉ptr2澶勶紝涔熷氨鏄疨et鐨勬暟鎹?br></div> <p>      濂戒簡錛屾棦鐒剁紪璇戝櫒甯垜浠嚜鍔ㄥ畬鎴愪簡涓嶅悓鐖剁被鐨勫湴鍧杞崲錛屾垜浠皟鐢ㄨ櫄鍑芥暟鐨勮繃紼嬩篃灝辮窡鍗曠戶鎵跨粺涓璧鋒潵浜嗭細閫氳繃鍏蜂綋瀵硅薄錛屾壘鍒皏ptr錛堥氬父鎸囬拡鐨勮搗濮嬩綅緗紝鍥犳Cute鎵懼埌鐨勬槸vptr1錛岃孭et鎵懼埌鐨勬槸vptr2錛夛紝閫氳繃vptr錛屾垜浠壘鍒癡Table錛岀劧鍚庢牴鎹紪璇戞椂寰楀埌鐨刅Table绱㈠紩鍙鳳紝鎴戜滑鍙栧緱鐩稿簲鐨勫嚱鏁板湴鍧錛屾帴鐫灝卞彲浠ラ┈涓婅皟鐢ㄤ簡銆?br><br>      鍦ㄨ繖閲岋紝欏轟究涔熸彁涓涓嬩袱涓壒孌婄殑鏂規硶鍦ㄥ鎬佷腑鐨勭壒鍒箣澶勫惂錛氱涓涓槸鏋勯犲嚱鏁幫紝鍦ㄦ瀯閫犲嚱鏁頒腑璋冪敤铏氬嚱鏁版槸涓嶄細鏈夊鎬佽涓虹殑錛屼緥瀛愬涓嬶細</p> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Pet<br>{<br>public:<br>   Pet(){ sayHello(); }<br>   void say(){ sayHello(); }<br><br>   virtual void sayHello()<br>   {<br>     cout<<"Pet sayHello"<<endl;<br>   }<br>   <br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Dog : public Pet<br>{<br>public:<br>   Dog(){};<br>   void sayHello()<br>   {<br>     cout<<"Dog sayHello"<<endl;<br>   }<br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">int main()<br>{<br> Pet* p = new Dog();<br> p->sayHello();<br> delete p;<br>}</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">output:<br>Pet sayHello //鐩存帴璋冪敤鐨勬槸Pet鐨剆ayHello()<br>Dog sayHello //澶氭?br></div> <p>     絎簩涓氨鏄瀽鏋勫嚱鏁幫紝浣跨敤澶氭佺殑鏃跺欙紝鎴戜滑緇忓父浣跨敤鍩虹被鐨勬寚閽堟潵寮曠敤媧劇敓綾葷殑瀵硅薄錛屽鏋滄槸鍔ㄦ佸垱寤虹殑錛屽璞′嬌鐢ㄥ畬鍚庯紝鎴戜滑浣跨敤delete鏉ラ噴鏀懼璞°備絾鏄紝濡傛灉鎴戜滑涓嶆敞鎰忕殑璇濓紝浼氭湁鎰忔兂涓嶅埌鐨勬儏鍐靛彂鐢熴?/p> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Pet<br>{<br>public:<br>   ~Pet(){ cout<<"Pet destructor"<<endl;  }<br>  //virtual ~Pet(){ cout<<"Pet virtual destructor"<<endl;  }<br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">class Dog : public Pet<br>{<br>public:<br>   ~Dog(){ cout<<"Dog destructor"<<endl;};<br>   //virtual ~Dog(){ cout<<"Dog virtual destructor"<<endl;  }<br>};</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">int main()<br>{<br> Pet* p = new Dog();<br> delete p;<br>}</div> <div style="border: 1px solid #cccccc; margin: 5px 20px; padding: 5px; background: #f3f3f3 none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">output錛?br>Pet destructor  //緋熶簡錛孌og鐨勬瀽鏋勫嚱鏁版病鏈夎皟鐢紝memory leak!<br><br>濡傛灉鎴戜滑灝嗘瀽鏋勫嚱鏁版敼鎴恦irtual浠ュ悗錛岀粨鏋滃涓?br>Dog virtual destructor<br>Pet virtual destructor   // That's OK!</div> <p>    鎵浠ワ紝濡傛灉涓涓被璁捐鐢ㄦ潵琚戶鎵跨殑璇濓紝閭d箞瀹冪殑鏋愭瀯鍑芥暟搴旇琚0鏄庝負virtual鐨勩?/p><img src ="http://www.shnenglu.com/LittleStar/aggbug/99063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-20 21:36 <a href="http://www.shnenglu.com/LittleStar/archive/2009/10/20/99063.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆愯漿銆戜笉褰撲嬌鐢╩emset鍑芥暟甯︽潵鐨勯夯鐑﹂棶棰?/title><link>http://www.shnenglu.com/LittleStar/archive/2009/10/20/99061.html</link><dc:creator>Little Star</dc:creator><author>Little Star</author><pubDate>Tue, 20 Oct 2009 13:11:00 GMT</pubDate><guid>http://www.shnenglu.com/LittleStar/archive/2009/10/20/99061.html</guid><wfw:comment>http://www.shnenglu.com/LittleStar/comments/99061.html</wfw:comment><comments>http://www.shnenglu.com/LittleStar/archive/2009/10/20/99061.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.shnenglu.com/LittleStar/comments/commentRss/99061.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/LittleStar/services/trackbacks/99061.html</trackback:ping><description><![CDATA[閫氬父鍦–鐨勭紪紼嬩腑錛屾垜浠粡甯鎬嬌鐢╩emset鍑芥暟灝嗕竴鍧楄繛緇殑鍐呭瓨鍖哄煙娓呴浂鎴栬緗負鍏跺畠鎸囧畾鐨勫鹼紝鏈榪戝湪縐繪涓孌礿ava浠g爜鍒癈++鐨勬椂鍊欙紝涓嶅綋浣跨敤memset鍑芥暟鑺辮垂浜嗘垜鍑犱釜灝忔椂鐨勮皟璇曟椂闂淬傚浜庤櫄鍑芥暟鐨勫簳灞傛満鍒跺緢澶?a style="font-size: 1em;" id="vad_3" class="vLink9999" onmouseover="if(typeof(showTitle)!='undefined'){this.title='';window.clearTimeout(hideTO);showTitle(event, this, 3,'');}" title="" onmouseout="if(typeof(showTitle)!='undefined'){mouseIsOverLayer = false; mouseoverwhileload =" false;="" hideto=" window.settimeout('checkifmouseoverlayer()',500);}" onclick="" target="_blank">璧勬枡</a>閮芥湁杈冭緇?a style="font-size: 1em;" id="vad_1" class="vLink9999" onmouseover="if(typeof(showTitle)!='undefined'){this.title='';window.clearTimeout(hideTO);showTitle(event, this, 1,'');}" title="iphone @utops.cc" onmouseout="if(typeof(showTitle)!='undefined'){mouseIsOverLayer = false; mouseoverwhileload =" false;="" hideto=" window.settimeout('checkifmouseoverlayer()',500);}" onclick="" target="_blank">闃愯堪</a>錛屼絾瀵規垜涓漢鑰岃█錛岃繖嬈$殑璋冭瘯璁╂垜鎰熻Е棰囨繁銆? <br><br>鍏堟潵鐪嬩竴孌典唬鐮侊紝鍦ㄧ戶鎵跨殑綾籄dvance涔嬩腑錛屾湁寰堝灞炴у瓧孌碉紝鎴?a style="font-size: 1em;" id="vad_0" class="vLink9999" onmouseover="if(typeof(showTitle)!='undefined'){this.title='';window.clearTimeout(hideTO);showTitle(event, this, 0,'');}" title="" onmouseout="if(typeof(showTitle)!='undefined'){mouseIsOverLayer = false; mouseoverwhileload =" false;="" hideto=" window.settimeout('checkifmouseoverlayer()',500);}" onclick="" target="_blank">甯屾湜</a>灝嗗叾娓呮垚0鎴朜ULL錛屼簬鏄湪鏋勯犲嚱鏁頒腑鎴戦氳繃memset灝嗗綋鍓嶇被鐨勬墍鏈夊睘鎬х疆0銆?<br><br>class Base{ <br><br>public: <br><br>virtual void kickoff() = 0; <br><br>}; <br>class Advance:public Base{ <br><br>public: <br><br>Advance(){ <br><br>memset(this, 0, sizeof(Advance)); <br><br>} <br><br>void kickoff(){ <br><br>count++; <br><br>//... do something else; <br><br>} <br><br>private: <br><br>int attr1, attr2; <br><br>char* label; <br><br>int count; <br><br>//... other attributes, they should be initiated to 0 or NULL at beginning. <br><br>}; <br><br>int _tmain(int argc, _TCHAR* argv[]) <br><br>{ <br>Base* ptr = new Advance(); <br>ptr->kickoff(); <br>return 0; <br>} <br><br>榪欐牱鐪嬩技鑳芥甯歌繍琛岋紝浣嗚繍琛岀▼搴忔椂錛屼綘浼氬彂鐜扮被浼間簬涓嬮潰鐨勯敊璇細 <br><br>TestVirtual.exe 涓殑 0x00415390 澶勬湭澶勭悊鐨勫紓甯? 0xC0000005: 璇誨彇浣嶇疆 0x00000000 鏃跺彂鐢熻闂啿紿? <br><br>鍚屾椂鏂偣鍋滅暀鍦╬tr->kickoff()澶勶紝浠庨敊璇彁紺烘垜浠彲浠ュ緱鐭ユ棤娉曡皟鐢╧ickoff鏂規硶錛岃繖涓柟娉曠殑鎸囬拡娌℃湁琚紜垵濮嬪寲錛屼絾涓轟粈涔堝憿錛? <br><br>鎸囧嚭闂涔嬪墠錛屽厛鐪嬬湅榪欐鏂囩尞涓婄殑鍏充簬铏氬嚱鏁版満鍒剁殑璇存槑錛?<br><br>鍑芥暟璧栦互鐢熷瓨鐨勫簳灞傛満鍒訛細vptr + vtable銆傝櫄鍑芥暟鐨勮繍琛屾椂瀹炵幇閲囩敤浜哣PTR/VTBL鐨勫艦寮忥紝榪欓」<a style="font-size: 1em;" id="vad_2" class="vLink9999" onmouseover="if(typeof(showTitle)!='undefined'){this.title='';window.clearTimeout(hideTO);showTitle(event, this, 2,'');}" title="%u7EC6%u6570%u7231%u4E0A%u53A8%u623F%u7684%u7406%u7531 @utops.cc" onmouseout="if(typeof(showTitle)!='undefined'){mouseIsOverLayer = false; mouseoverwhileload =" false;="" hideto=" window.settimeout('checkifmouseoverlayer()',500);}" onclick="" target="_blank">鎶鏈?/a>鐨勫熀紜錛? <br>鈶犵紪璇戝櫒鍦ㄥ悗鍙頒負姣忎釜鍖呭惈铏氬嚱鏁扮殑綾諱駭鐢熶竴涓潤鎬佸嚱鏁版寚閽堟暟緇勶紙铏氬嚱鏁拌〃錛夛紝鍦ㄨ繖涓被鎴栬呭畠鐨勫熀綾諱腑瀹氫箟鐨勬瘡涓涓櫄鍑芥暟閮芥湁涓涓浉搴旂殑鍑芥暟鎸囬拡銆? <br>鈶℃瘡涓寘鍚櫄鍑芥暟鐨勭被鐨勬瘡涓涓疄渚嬪寘鍚竴涓笉鍙鐨勬暟鎹垚鍛榲ptr錛堣櫄鍑芥暟鎸囬拡錛夛紝榪欎釜鎸囬拡琚瀯閫犲嚱鏁拌嚜鍔ㄥ垵濮嬪寲錛屾寚鍚戠被鐨剉tbl錛堣櫄鍑芥暟琛級 <br>鈶㈠綋瀹㈡埛璋冪敤铏氬嚱鏁扮殑鏃跺欙紝緙栬瘧鍣ㄤ駭鐢熶唬鐮佸弽鎸囧悜鍒皏ptr錛岀儲寮曞埌vtbl涓紝鐒跺悗鍦ㄦ寚瀹氱殑浣嶇疆涓婃壘鍒板嚱鏁版寚閽堬紝騫跺彂鍑鴻皟鐢ㄣ? <br><br>榪欓噷鐨勯棶棰橈紝灝卞嚭鍦?<br><br>memset(this, 0, sizeof(Advance)); <br><br>涓婇潰錛岃櫄鍑芥暟鎸囬拡搴旇鍦ㄨ繘鍏ユ瀯閫犲嚱鏁拌祴鍊間綋涔嬪墠鑷姩鍒濆鍖栫殑錛岃宮emset鍗村張灝嗗凡緇忓垵濮嬪寲濂界殑鎸囬拡娓?浜嗭紝榪欏氨鏄負浠涔堜細浜х敓涓婇潰鐨勮闂浂鍧鐨勯敊璇傚皢涓婇潰鐨刴emset璇彞鍘婚櫎紼嬪簭灝卞彲浠ユ甯歌繍琛屼簡銆? <br><br>鎵浠ワ紝浠庝笂闈㈢殑闂涓紝鎴戜滑鍙互鐪嬪嚭鍦ㄦ瀯閫犲嚱鏁頒綋鍐呰皟鐢╩emset灝嗘暣涓璞℃竻0鏄緢鏈夐闄╃殑錛屽綋娌℃湁铏氬嚱鏁扮殑鏃跺欎笂闈㈢▼搴忓彲浠ユ甯歌繍琛岋紙鍙互璇曠潃灝咮ase綾葷殑綰櫄鍑芥暟澹版槑鏀規垚闈炶櫄鍑芥暟鍐嶈繍琛岀▼搴忥級銆傚垵濮嬪寲綾葷殑灞炴у璞℃椂錛屾瘮杈冪ǔ濡ョ殑鍔炴硶榪樻槸鎵嬪姩閫愪釜榪涜鍒濅嬌鍖?<img src ="http://www.shnenglu.com/LittleStar/aggbug/99061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-20 21:11 <a href="http://www.shnenglu.com/LittleStar/archive/2009/10/20/99061.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>shadow map 闃村獎鍥劇畻娉曠殑鎬濊?/title><link>http://www.shnenglu.com/LittleStar/archive/2009/10/13/98538.html</link><dc:creator>Little Star</dc:creator><author>Little Star</author><pubDate>Tue, 13 Oct 2009 15:34:00 GMT</pubDate><guid>http://www.shnenglu.com/LittleStar/archive/2009/10/13/98538.html</guid><wfw:comment>http://www.shnenglu.com/LittleStar/comments/98538.html</wfw:comment><comments>http://www.shnenglu.com/LittleStar/archive/2009/10/13/98538.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.shnenglu.com/LittleStar/comments/commentRss/98538.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/LittleStar/services/trackbacks/98538.html</trackback:ping><description><![CDATA[<br><br><br>       shadow map 浠ュ墠鏃╁氨鐮旂┒榪囷紝涓嶈繃涓嬈′笉灝忓績鎶婁互鍓嶅仛鐨勪笢瑗塊兘寮勪涪浜嗭紝浠婂ぉ閲嶆柊鍋氫簡涓涓嬶紝<br>鍔犲埌浜嗙郴緇熼噷錛岀粰澶у鐪嬩笅鏁堟灉錛氾級<br><br><img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/shadowmap.JPG" width="640" height="480"><br><br>shadow map綆楁硶鍘熺悊寰堢畝鍗?鍏堢畝鍗曚粙緇嶄笅綆楁硶緇欐柊浜猴細<br>1.浠ュ厜婧愭墍鍦ㄤ綅緗負瑙傚療鐐規覆鏌撳満鏅紙鍙互鍙覆鏌撻渶瑕佷駭鐢熼槾褰辯殑鐗╀綋錛夊皢娓叉煋鍚庣殑娣卞害鍊間繚瀛樻繁搴﹀浘錛堜竴寮犱簨鍏堝噯澶囧ソ鐨勭汗鐞嗭級銆?br>鍦ㄦ姝ラ渶瑕佹敞鎰忕殑鏄?姝ゆ娓叉煋鐢ㄥ埌鐨勬ā鍨嬭瑙嗘姇褰辯煩闃碉紙浠ュ悗綆縐癿vp錛夐渶瑕佷繚瀛樹竴涓嬶紝涓嬩竴姝ヨ鐢ㄥ埌銆?br>2.姝e父娓叉煋鍦烘櫙錛屽皢欏剁偣鍧愭爣涔樹互姝ラ涓鏃跺欑殑mvp錛屽皢鍧愭爣鍙樻崲鍒頒互鍏夋簮涓鴻瀵熺偣鐨勫潗鏍囩郴閲岋紝姣旇緝z鍊煎拰浠庢繁搴﹀浘涓鍑烘潵鐨?br>鍊煎緱澶у皬鍒ゆ柇閬尅錛屾湁閬尅鐨勮瘽灝嗚緭鍑洪鑹插噺寮辨垨鑰呮崲鎴愬埆鐨勯殢絎斾綘浜嗐傚叾涓湁涓湴鏂歸渶瑕佹敞鎰忥紝濡備綍浠庢繁搴﹀浘綰圭悊涓鏁版嵁錛?br>榪欎釜鎴戞槸榪欎箞瑙e喅鐨勶細float2 suv = ((spos.xy/spos.z))//鍏朵腑spos鏄彉鎹㈠埌鍏夋簮鍧愭爣緋諱笅鐨勯《鐐規暟鎹紝寰楀埌鐨剆uv緇忚繃澶勭悊鍚庡彲浠?br>褰撳仛娣卞害鍥劇殑綰圭悊鍧愭爣鍊鹼紝璇誨彇鏂規硶涓篺loat4 shadow = tex2D(t11,(suv+1.0)*0.5)錛屽叾涓敤鍒頒竴涓?1錛?銆戝埌銆?錛?銆戠殑鍙樻崲銆?br>鍓╀笅鐨勫氨鏄瘮杈冧簡  錛?<br>            float sz =  1 - spos.z/(gDepthSize)錛?/灝嗘繁搴﹀煎彉鎹㈠埌銆?錛?銆戝尯闂達紝gDepthSize鏄幏寰楁繁搴︾汗鐞嗘椂娓叉煋鍦烘櫙鐨勬渶娣卞?  <br>            //澧炲姞闃村獎<br>            if((sz < shadow.x))//sz鏄氨鏄?br>            {<br>                color = color*(1 - shadow);<br>                color.w = 1.0;<br>                //color = float4(sz,sz,sz,1);<br>            }<br>//----------------------------------------------------------------------------------------------------------------------------<br>鍏充簬shadow map 綆楁硶鐨勭己鐐?璺熷ぇ瀹惰璁轟竴涓?<br>姘歌繙鐨勫洶鎵皊hadow map鐨勫け鐪熼棶棰橈紝褰撳厜婧愮収灝勫満鏅◢澶х殑鏃跺欏け鐪熺幇璞″氨浼氬緢涓ラ噸錛屾湁浜涙敼榪涚畻娉曪紝浣嗛兘瑙夊緱娌繪爣涓嶆不鏈?br>濡傛灉璇存垜鏁翠釜鍦烘櫙鏈夊緢澶氬埌澶勮窇鐨勪漢錛岄偅浠栦滑鐨勯槾褰辨晥鏋滆鎬庢牱鍋氬憿錛燂紵錛?br><br>鎰熻shadow map鐢ㄥ湪鐢熸垚褰撳墠瑙掕壊鐨勯槾褰辨尯濂斤紝濡傛灉鏄ぇ鑼冨洿鐨勪笉澶ч傚悎銆傚緢澶氶潤鎬佺殑鐗╀綋鍙互鍏堟妸闃村獎浜嬪厛璁$畻濂斤紝鐢ㄧ殑鏃跺?br>鐩存帴璇誨彇錛屾病鏈夊繀瑕佹瘡甯ч兘閲嶆柊璁$畻銆?br><br>//----------------------------------------------------------------------------------------------------------------------------<br>shadow map 鏈澶х殑濂藉鏄彲浠ュ鐞嗛忔槑綰圭悊鐨勯槾褰憋紝浠ヤ負鎴戠殑鍦烘櫙鐨勬爲鏄敤閫忔槑綰圭悊鐢諱笂鍘葷殑錛屽鏋滃緱鍒扮殑闃村獎鏄釜鐭?br>褰㈤偅灝卞緢鎬簡錛屽垢濂絪hadow map 娌℃湁榪欎釜闂錛侊紒錛?br><br><br><br><img src ="http://www.shnenglu.com/LittleStar/aggbug/98538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-13 23:34 <a href="http://www.shnenglu.com/LittleStar/archive/2009/10/13/98538.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>vertex shader texture 璁塊棶綰圭悊鐨勬柟娉?/title><link>http://www.shnenglu.com/LittleStar/archive/2009/10/13/98452.html</link><dc:creator>Little Star</dc:creator><author>Little Star</author><pubDate>Tue, 13 Oct 2009 01:02:00 GMT</pubDate><guid>http://www.shnenglu.com/LittleStar/archive/2009/10/13/98452.html</guid><wfw:comment>http://www.shnenglu.com/LittleStar/comments/98452.html</wfw:comment><comments>http://www.shnenglu.com/LittleStar/archive/2009/10/13/98452.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/LittleStar/comments/commentRss/98452.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/LittleStar/services/trackbacks/98452.html</trackback:ping><description><![CDATA[<br><br>         浠婂ぉ鑰冭檻紼嬪簭鐨勪紭鍖栭棶棰橈紝紿佺劧鎯沖埌璇寸幇鍦╲etex shader宸茬粡鍙互璁塊棶綰圭悊璧勬簮浜嗭紝鍙互鎶婅闂珮搴﹀浘鐨勬搷浣滆漿縐?br>鍒皏etex shader涓幓鍋氳綆楋紝GPU璁塊棶綰圭悊鐨勯熷害瑕佹瘮CPU璁塊棶鍐呭瓨蹇浜嗗惂錛堟垜鏄繖涔堣涓虹殑錛夈備笉榪囬亣瑙佷竴涓棶棰樸?br>鐢╰ex2D璁塊棶鍑烘潵鐨勫兼殑錛屼笉鏄垜瑕佺殑楂樺害綰圭悊鍊鹼紝鍚庢潵鍙戠幇濡傛灉fragment shader閲岄潰璁塊棶浜嗗埆鐨勭汗鐞嗕細褰卞搷鍒皏etex閲?br>闈㈢殑錛屼笂緗慻oogle浜嗕竴涓嬶紝濂藉浜洪兘璇村緱鐢?tex2DLod鎵嶈錛岃瘯浜嗕笅涓鐐瑰ソ杞殑榪硅薄閮芥病鏈夛紝鍙堟湁浜鴻綰圭悊寰楁槸float鐨勶紝鍙傜収<br>鐫鏀逛簡涓嬶紝榪樻槸涓嶈銆傦紙寰堝鏃跺欏湪緗戜笂鏌ュ埌鐨勯兘涓嶅ソ鐢紝褰撶劧涔熸湁濂界敤鐨勶紝鏈夌偣搴熻瘽錛屽搱鍝堬級<br>        鍚庢潵紿佺劧鍙戠幇鎴戠殑sampler閮芥病鏈夎窡瀵勫瓨鍣ㄧ粦瀹氾紝緇戝畾浜嗕互鍚庡氨濂戒簡錛屽緢濂囨紝闅鵑亾璇村彧璋冪敤cgGLSetTextureParameter<br>騫朵笉鑳藉疄鐜扮汗鐞嗙殑緇戝畾錛?nbsp;  鐜板湪鎴戞妸鎵鏈塻ampler閮借窡涓涓瘎瀛樺櫒緇戝畾鍚庡氨涓鍒囨甯鎬簡銆?br><br>灝卞儚榪欐牱錛?br>//--------------------------------------------------------------------------------<br>sampler2D t10 :TEXUNIT0;//鍦伴潰楂樺害鍥?    鍏朵粬鐨剆ampler涔熼渶瑕佺粦瀹氬埌瀵勫瓨鍣ㄦ墠浼氬ソ鐢?br><br>OutPut xS_v(float4 ipos:POSITION,<br>            float2 tex:TEXCOORD0,<br>            float3 normal:NORMAL)<br>{<br>    OutPut OUT;                            //out鏄叧閿瓧<br>    ipos.y =tex2D(t10,tex).z*256;<br>//---------------------------------------------------------------------------------<br><br><br>cg璇█榪愯鍑烘潵鐨勭粨鏋滅粡甯告殑錛屾湁涓嬈℃垜鏁呮剰鍐欓敊浜嗕竴鍙ヨ瘽錛岀粨鏋滅紪璇戜篃鑳介氳繃錛屽彧鏄樉紺哄嚭鏉ョ殑瀹屽叏涓?br>鏄垜鎯寵鐨勶紝鏈夋病鏈夐珮浜烘寚鐐逛竴涓嬶紝澶氳阿錛侊紒<br><br><br>涓嶈繃鎶婅闂珮搴﹀浘鏀瑰埌鐢℅PU璁塊棶綰圭悊鍚庯紝鏁堟灉榪樻槸寰堟槑鏄劇殑錛岄熷害鎻愬崌浜嗗樊涓嶅涓鍊嶃?br><img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/gaileshude.JPG" width="647" height="487"><br><br><br><br> <img src ="http://www.shnenglu.com/LittleStar/aggbug/98452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-13 09:02 <a href="http://www.shnenglu.com/LittleStar/archive/2009/10/13/98452.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>姘撮潰鏁堟灉鍥? 搴旂敤浜嗗姩鎬佺汗鐞嗭紝娉曠嚎鎵板姩錛屽弽灝勭汗鐞?/title><link>http://www.shnenglu.com/LittleStar/archive/2009/10/12/98336.html</link><dc:creator>Little Star</dc:creator><author>Little Star</author><pubDate>Sun, 11 Oct 2009 16:48:00 GMT</pubDate><guid>http://www.shnenglu.com/LittleStar/archive/2009/10/12/98336.html</guid><wfw:comment>http://www.shnenglu.com/LittleStar/comments/98336.html</wfw:comment><comments>http://www.shnenglu.com/LittleStar/archive/2009/10/12/98336.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.shnenglu.com/LittleStar/comments/commentRss/98336.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/LittleStar/services/trackbacks/98336.html</trackback:ping><description><![CDATA[<br>鏈榪戠殑宸ヤ綔錛?br><br>1.瀹炵幇浜嗗垁瀹㈢殑鍔ㄤ綔鎺у埗銆傦紙md2鏂囦歡錛孏PU瀹炵幇甯у姩鐢伙級銆?br>2.璇曢獙浜嗘按闈㈡晥鏋滐紙鏈夊弽灝勭汗鐞嗘槧灝勶紝姘撮潰娉曠嚎璐村浘璁$畻鍏夌収鍜屾壈鍔級銆?br>3.璇曢獙浜哹illboard鏁堟灉銆?br>4.淇敼紼嬪簭涓殑涓浜沚ug銆?br><br>鏈変袱涓釜闂錛?br>1.OpenGL濡備綍鎻愰珮鏁堢巼錛屾榪庢寚鏁欙紒<br>2.flt鏂囦歡濡備綍綆鍖栵紝鏈夊ソ鐢ㄧ殑宸ュ叿涔堬紝鎴戠殑閮芥槸浠?ds瀵艱繃鏉ョ殑錛岄潰鏁板お澶氫簡錛屼笉澶ч傜敤銆?br><br>鍙戝嚑寮犲鍥撅紝璐葷瑧澶ф柟錛?br><br><img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/shuimian.JPG" width="647" height="492"><br><br>鎰熻姘撮潰鍙嶅皠鍔犱簡鏍戠殑鍊掑獎鍙嶈屽彉寰楁殑錛侊紒<br><br>鍐嶆潵鍑犲紶鍓嶅嚑澶╂埅寰楀浘<br><img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/kongzhonghuayuan.JPG" width="644" height="487"><br><br>榪欐槸鎴戠殑灝忚姳鍥紝澶ф爲鐨勭汗鐞嗙儌閫忎簡銆?br><br><img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/xiaohe.JPG" width="642" height="487"><br><br><br>灝忔渤嫻佹按 鍝楀暒鍟?#8230;…<br><br><br><br><img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/meijiadimiande.JPG" width="647" height="487"><br><br>鍘繪帀鍦板艦鐨勬晥鏋滐紝鎰熻榪樿洰婕備寒鐨勶紝鍛靛懙<br><br>澶у鏈変粈涔堢湅娉曞敖閲忕暀璦錛屾偍鐨勫叧娉ㄥ氨鏄鎴戞渶澶х殑甯姪錛侊紒<br><br> <img src ="http://www.shnenglu.com/LittleStar/aggbug/98336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-12 00:48 <a href="http://www.shnenglu.com/LittleStar/archive/2009/10/12/98336.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Parallax Mapping 鏁堟灉鍥?寰堢儌鐨勬晥鏋滃浘 http://www.shnenglu.com/LittleStar/archive/2009/09/25/97192.htmlLittle StarLittle StarThu, 24 Sep 2009 19:33:00 GMThttp://www.shnenglu.com/LittleStar/archive/2009/09/25/97192.htmlhttp://www.shnenglu.com/LittleStar/comments/97192.htmlhttp://www.shnenglu.com/LittleStar/archive/2009/09/25/97192.html#Feedback2http://www.shnenglu.com/LittleStar/comments/commentRss/97192.htmlhttp://www.shnenglu.com/LittleStar/services/trackbacks/97192.htmlnormal map


Parallax Mapping



瀵瑰簲鐨勭綉鏍煎浘



瓚佺潃浜哄皯鍙戜袱寮犵瓑鐫鎸ㄧ爾澶寸殑鏁堟灉鍥俱?br>
鐪嬩簡涓澶╃殑璧勬枡錛岃瘉瀹炰簡鍘熸潵鐨勬兂娉曟槸瀵圭殑銆?br>normal map  鏄?bump map 鐨勬敼榪涳紝涓昏鏄疓PU鍙紪紼嬩負鍏跺垱閫犱簡鏉′歡銆?br>parallax map 鏄?normal map 鐨勬敼榪涚増鏈紝鐩稿綋浜庢槸瀵筺ormal map 鐨勪慨姝o紝娌′粈涔堝績鎰忋?br>
Displacement Mapping璨屼技鎸虹墰錛屾槑澶╀粩緇嗙爺絀朵笅 錛?錛?br>

Little Star 2009-09-25 03:33 鍙戣〃璇勮
]]>
Texture Blending && Phone Model && Roam Terrain Utilize the Cg to realizehttp://www.shnenglu.com/LittleStar/archive/2009/09/24/97084.htmlLittle StarLittle StarWed, 23 Sep 2009 18:09:00 GMThttp://www.shnenglu.com/LittleStar/archive/2009/09/24/97084.htmlhttp://www.shnenglu.com/LittleStar/comments/97084.htmlhttp://www.shnenglu.com/LittleStar/archive/2009/09/24/97084.html#Feedback3http://www.shnenglu.com/LittleStar/comments/commentRss/97084.htmlhttp://www.shnenglu.com/LittleStar/services/trackbacks/97084.html

鍏堟潵寮犺皟鏁翠簡鍙傛暟鐨剅oam緗戞牸鍥劇墖錛屾妸闈㈢墖鏁扮害鏉熷湪1w錛岃繖涓媟oam鐨勬晥鏋滃氨鏄庢樉浜嗗惂錛?br>鍙戠幇鍦板娍濡傛灉涓嶆槸鐗瑰埆騫沖潶鐨勮瘽錛屽緢闅炬壘鍒頒竴涓弧鎰忕殑鍙傛暟錛屾棦鑳藉噺灝戦潰鐗囨暟錛屽張鑳藉彇寰楀緢濂界殑鏄劇ず鏁堟灉銆?br>濡傛灉鏈夊ぇ鐗囧ぇ鐗囩殑騫沖湴錛岄偅灝辯畝鍗曚簡銆?br>


榪欐槸浣跨敤cg璇█瀹炵幇鐨?texture blend 浣跨敤鍥涘紶綰圭悊鍔犱竴涓粏鑺傜汗鐞嗘販鍚堣屾垚錛?br>澧炲姞浜嗗儚绱犵駭鐨?Phone 鍏夌収妯″瀷銆傚厜鐓х殑棰滆壊鏈夌偣鎬殑銆?br>


Little Star 2009-09-24 02:09 鍙戣〃璇勮
]]>
鏀硅繘鐨剅oam terrain 鏁堟灉鍥?/title><link>http://www.shnenglu.com/LittleStar/archive/2009/09/21/96813.html</link><dc:creator>Little Star</dc:creator><author>Little Star</author><pubDate>Sun, 20 Sep 2009 17:00:00 GMT</pubDate><guid>http://www.shnenglu.com/LittleStar/archive/2009/09/21/96813.html</guid><wfw:comment>http://www.shnenglu.com/LittleStar/comments/96813.html</wfw:comment><comments>http://www.shnenglu.com/LittleStar/archive/2009/09/21/96813.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/LittleStar/comments/commentRss/96813.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/LittleStar/services/trackbacks/96813.html</trackback:ping><description><![CDATA[<img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/roam1.JPG" width="648" height="513"><br><br>闈㈢墖鏁拌窡甯ф暟姘歌繙鐨勮浜哄緢鐭涚浘銆傝繖鏍蜂互鍚庣獊鍙樺氨寰堜笉鏄庢樉浜嗭紝鑲夌溂鍑犱箮鍙戠幇涓嶄簡錛屼笉榪囨劅瑙夋湁閫鍖栨垚鏅氱殑lod鐨勮秼鍔褲?br>褰撶劧錛岃繙澶勭殑緗戞牸榪樻槸浼氭湁璺沖姩鐜拌薄錛屼笉榪囬偅宸茬粡寰堣繙浜嗭紝涓鑸笉浼氭湁浜烘敞鎰忓埌鍙戠敓浜嗕粈涔堛?br>鍙槸榪欐牱澶уぇ澧炲姞浜嗙綉鏍兼暟閲忥紝搴旂敤涓嬭鏅綋鍓櫎鏁堟灉浼氭瘮榪欎釜濂藉緢澶氬惂錛?br><br><img src ="http://www.shnenglu.com/LittleStar/aggbug/96813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-09-21 01:00 <a href="http://www.shnenglu.com/LittleStar/archive/2009/09/21/96813.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬 roam terrain 鐨勭枒闂?/title><link>http://www.shnenglu.com/LittleStar/archive/2009/09/20/96742.html</link><dc:creator>Little Star</dc:creator><author>Little Star</author><pubDate>Sat, 19 Sep 2009 16:29:00 GMT</pubDate><guid>http://www.shnenglu.com/LittleStar/archive/2009/09/20/96742.html</guid><wfw:comment>http://www.shnenglu.com/LittleStar/comments/96742.html</wfw:comment><comments>http://www.shnenglu.com/LittleStar/archive/2009/09/20/96742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/LittleStar/comments/commentRss/96742.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/LittleStar/services/trackbacks/96742.html</trackback:ping><description><![CDATA[<img alt="" src="http://www.shnenglu.com/images/cppblog_com/littlestar/roam.JPG" width="498" height="456"><br><br>榪欎釜鏄垜瀹炵幇鍑烘潵鐨?roam terrain 鍦板艦<br>闂鏄紝褰撴垜鍦ㄥ湴褰笂婕父鏃訛紝緗戞牸蹇呯劧浼氬彂鐢熷彉鍖栥備笉鍚屽眰嬈$殑緗戞牸涔嬮棿璺寵穬鐨勫緢鍘夊錛岃浜鴻寰楀湴褰㈠緢涓嶇湡瀹烇紝<br>鏈夋病鏈変漢鏈夊ソ鐨勫姙娉曡兘瑙e喅錛?br><br><img src ="http://www.shnenglu.com/LittleStar/aggbug/96742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-09-20 00:29 <a href="http://www.shnenglu.com/LittleStar/archive/2009/09/20/96742.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綆鏄撻琛屼豢鐪?鈥斺?鍏ヤ鏡鎴戠殑灝忛晣http://www.shnenglu.com/LittleStar/archive/2009/09/17/96480.htmlLittle StarLittle StarWed, 16 Sep 2009 16:35:00 GMThttp://www.shnenglu.com/LittleStar/archive/2009/09/17/96480.htmlhttp://www.shnenglu.com/LittleStar/comments/96480.htmlhttp://www.shnenglu.com/LittleStar/archive/2009/09/17/96480.html#Feedback7http://www.shnenglu.com/LittleStar/comments/commentRss/96480.htmlhttp://www.shnenglu.com/LittleStar/services/trackbacks/96480.html2.嫻嬭瘯涓嬪紩鎿庢鏋訛紝瀵繪壘bug銆?br>

榪欏紶鏄垰寮濮嬫椂娌″姞杞戒笂澶栭儴鏂囦歡鏃剁殑



榪欏紶鏄垎鐐告晥鏋滃浘


榪欏紶鏄潃鐏晥鏋?br>


琚寮硅拷鍑?br>
鏈鍚庢潵寮犲鑹茬編鏅?br>



璇氱浖鐗涗漢鎸囩偣涓嶈凍錛?br>

Little Star 2009-09-17 00:35 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲三级视频在线观看| 亚洲桃色在线一区| 欧美一级淫片aaaaaaa视频| 欧美日韩亚洲一区三区| 一区二区欧美精品| 一区二区三区.www| 国产伦理一区| 久久久久亚洲综合| 久久久五月婷婷| 亚洲国产日韩一区| 日韩视频中午一区| 国产精品视频一二三| 久久久人成影片一区二区三区| 欧美一区不卡| 亚洲人成亚洲人成在线观看| 亚洲精品中文字| 国产嫩草影院久久久久| 久久综合狠狠综合久久综合88| 美脚丝袜一区二区三区在线观看 | 午夜激情亚洲| 国产一区二区三区在线观看免费视频 | 久久久久久久高潮| 蜜臀av在线播放一区二区三区| 亚洲伦理在线| 欧美一区二区三区视频免费| 亚洲激情精品| 亚洲在线免费观看| 亚洲欧洲在线一区| 午夜欧美精品久久久久久久| 亚洲国产美国国产综合一区二区| 日韩视频免费大全中文字幕| 国外成人免费视频| 夜夜爽99久久国产综合精品女不卡| 国产三级欧美三级| 亚洲精选大片| 1024亚洲| 亚洲欧美日韩精品综合在线观看| 亚洲国产欧美日韩| 欧美在线播放| 久久精品72免费观看| 亚洲毛片av| 久久久久久9| 亚洲欧美日韩久久精品| 欧美大色视频| 久久只有精品| 国产日韩精品在线| 妖精视频成人观看www| 亚洲国产1区| 午夜精品久久久久久久99樱桃| 亚洲另类视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美一区二区三区另类 | 欧美一区三区二区在线观看| 一二三区精品| 欧美福利视频在线观看| 老色批av在线精品| 国产主播喷水一区二区| 亚洲欧美日本精品| 午夜视频在线观看一区| 欧美日韩一卡| 一本色道久久88综合日韩精品| 亚洲精品乱码| 欧美大尺度在线| 欧美丰满高潮xxxx喷水动漫| 好男人免费精品视频| 香蕉久久夜色精品国产| 性久久久久久| 国产模特精品视频久久久久| 亚洲一区二区三区视频播放| 亚洲视频在线观看| 国产精品久久久久毛片软件 | 美国十次成人| 亚洲高清在线观看| 亚洲美女诱惑| 欧美日本一道本| 99国产精品国产精品久久| 一区二区三区国产在线观看| 欧美日韩国产限制| 亚洲视频在线视频| 久久精品国产亚洲高清剧情介绍| 国产午夜精品美女毛片视频| 欧美在线网址| 亚洲电影成人| 宅男噜噜噜66一区二区| 国产精品羞羞答答xxdd| 性欧美超级视频| 欧美黄在线观看| 一片黄亚洲嫩模| 国产麻豆91精品| 久久欧美中文字幕| 亚洲伦理在线观看| 欧美一区二区三区免费大片| 在线不卡欧美| 欧美日韩国产成人在线观看| 亚洲愉拍自拍另类高清精品| 麻豆91精品91久久久的内涵| 亚洲精品三级| 国产精品视频网| 久久综合九色| 亚洲图片欧洲图片日韩av| 久久精品视频亚洲| 亚洲美女免费精品视频在线观看| 国产精品久久久一区麻豆最新章节| 午夜精品免费在线| 亚洲黄色在线| 久久精品夜夜夜夜久久| 日韩天天综合| 好看不卡的中文字幕| 欧美日韩直播| 老司机午夜精品| 亚洲欧美日韩久久精品| 91久久久久久久久| 久久久夜色精品亚洲| 亚洲视频在线观看| 亚洲黄色影院| 国产有码一区二区| 欧美三级视频| 欧美成人午夜| 久久精品国产清高在天天线| 一区二区免费在线视频| 亚洲高清av在线| 久久久亚洲国产美女国产盗摄| 亚洲综合第一| 99国产精品99久久久久久| 红桃视频亚洲| 国产欧美日韩亚洲| 欧美系列电影免费观看| 欧美高清不卡在线| 麻豆成人综合网| 久久精品欧洲| 亚洲欧美日韩精品久久奇米色影视| 亚洲精品国产精品乱码不99按摩| 久久综合激情| 久久伊人精品天天| 久久琪琪电影院| 久久爱另类一区二区小说| 午夜精品久久久久影视 | 亚洲国产婷婷综合在线精品| 黄色精品一区| 国产一区视频网站| 国产亚洲综合在线| 国产婷婷色综合av蜜臀av| 国产精品久久福利| 国产精品福利av| 国产精品看片资源| 国产精品青草久久久久福利99| 国产精品sm| 国产精品国产三级欧美二区| 欧美性色aⅴ视频一区日韩精品| 欧美日本精品| 国产精品国产精品| 国产精品一区二区a| 国产日韩欧美精品综合| 国产一区二区三区久久悠悠色av | 亚洲精品影院在线观看| 亚洲韩国一区二区三区| 亚洲日本成人女熟在线观看| 亚洲精品永久免费精品| 一区二区三区免费网站| 亚洲一区国产视频| 销魂美女一区二区三区视频在线| 欧美一级视频精品观看| 久久久九九九九| 欧美大片在线观看一区二区| 亚洲黄网站黄| 亚洲午夜成aⅴ人片| 欧美一区二区在线播放| 老牛嫩草一区二区三区日本| 欧美久久影院| 国产精品亚洲欧美| 在线精品国产成人综合| 亚洲美女黄色| 久久精品国产精品亚洲| 欧美aa在线视频| 一本色道久久综合亚洲精品小说| 亚洲欧美区自拍先锋| 久久在线播放| 欧美视频导航| 激情久久久久久久| 中文精品视频| 久久综合久久综合这里只有精品| 亚洲国产高清视频| 翔田千里一区二区| 欧美激情一区二区| 国户精品久久久久久久久久久不卡| 亚洲第一区在线观看| 亚洲欧美激情四射在线日| 久久亚洲精品中文字幕冲田杏梨| 亚洲精品久久久久| 久久久免费av| 国产精品美女一区二区| 亚洲欧洲精品一区二区三区不卡 | 欧美国产免费| 亚洲香蕉网站| 欧美日本乱大交xxxxx| 国产一区二区三区无遮挡| 亚洲一区日本| 亚洲黄色视屏| 免费人成网站在线观看欧美高清| 国产视频观看一区|