锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲美女黄色,欧美成人精品一区,国产亚洲福利一区http://m.shnenglu.com/LittleStar/ O(鈭鈭?O 灝忔湀浜殑fans ^_^zh-cnSun, 16 Nov 2025 12:57:25 GMTSun, 16 Nov 2025 12:57:25 GMT60銆愯漿銆戝鎬?Polymorphism)鐨勫疄鐜版満鍒?涓?錛嶏紞C++綃?/title><link>http://m.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://m.shnenglu.com/LittleStar/archive/2009/10/20/99063.html</guid><wfw:comment>http://m.shnenglu.com/LittleStar/comments/99063.html</wfw:comment><comments>http://m.shnenglu.com/LittleStar/archive/2009/10/20/99063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/LittleStar/comments/commentRss/99063.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/LittleStar/aggbug/99063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-20 21:36 <a href="http://m.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://m.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://m.shnenglu.com/LittleStar/archive/2009/10/20/99061.html</guid><wfw:comment>http://m.shnenglu.com/LittleStar/comments/99061.html</wfw:comment><comments>http://m.shnenglu.com/LittleStar/archive/2009/10/20/99061.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://m.shnenglu.com/LittleStar/comments/commentRss/99061.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/LittleStar/aggbug/99061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-20 21:11 <a href="http://m.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://m.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://m.shnenglu.com/LittleStar/archive/2009/10/13/98538.html</guid><wfw:comment>http://m.shnenglu.com/LittleStar/comments/98538.html</wfw:comment><comments>http://m.shnenglu.com/LittleStar/archive/2009/10/13/98538.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/LittleStar/comments/commentRss/98538.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/LittleStar/services/trackbacks/98538.html</trackback:ping><description><![CDATA[<br><br><br>       shadow map 浠ュ墠鏃╁氨鐮旂┒榪囷紝涓嶈繃涓嬈′笉灝忓績鎶婁互鍓嶅仛鐨勪笢瑗塊兘寮勪涪浜嗭紝浠婂ぉ閲嶆柊鍋氫簡涓涓嬶紝<br>鍔犲埌浜嗙郴緇熼噷錛岀粰澶у鐪嬩笅鏁堟灉錛氾級<br><br><img alt="" src="http://m.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://m.shnenglu.com/LittleStar/aggbug/98538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-13 23:34 <a href="http://m.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://m.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://m.shnenglu.com/LittleStar/archive/2009/10/13/98452.html</guid><wfw:comment>http://m.shnenglu.com/LittleStar/comments/98452.html</wfw:comment><comments>http://m.shnenglu.com/LittleStar/archive/2009/10/13/98452.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.shnenglu.com/LittleStar/comments/commentRss/98452.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/images/cppblog_com/littlestar/gaileshude.JPG" width="647" height="487"><br><br><br><br> <img src ="http://m.shnenglu.com/LittleStar/aggbug/98452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-13 09:02 <a href="http://m.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://m.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://m.shnenglu.com/LittleStar/archive/2009/10/12/98336.html</guid><wfw:comment>http://m.shnenglu.com/LittleStar/comments/98336.html</wfw:comment><comments>http://m.shnenglu.com/LittleStar/archive/2009/10/12/98336.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://m.shnenglu.com/LittleStar/comments/commentRss/98336.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/images/cppblog_com/littlestar/shuimian.JPG" width="647" height="492"><br><br>鎰熻姘撮潰鍙嶅皠鍔犱簡鏍戠殑鍊掑獎鍙嶈屽彉寰楁殑錛侊紒<br><br>鍐嶆潵鍑犲紶鍓嶅嚑澶╂埅寰楀浘<br><img alt="" src="http://m.shnenglu.com/images/cppblog_com/littlestar/kongzhonghuayuan.JPG" width="644" height="487"><br><br>榪欐槸鎴戠殑灝忚姳鍥紝澶ф爲鐨勭汗鐞嗙儌閫忎簡銆?br><br><img alt="" src="http://m.shnenglu.com/images/cppblog_com/littlestar/xiaohe.JPG" width="642" height="487"><br><br><br>灝忔渤嫻佹按 鍝楀暒鍟?#8230;…<br><br><br><br><img alt="" src="http://m.shnenglu.com/images/cppblog_com/littlestar/meijiadimiande.JPG" width="647" height="487"><br><br>鍘繪帀鍦板艦鐨勬晥鏋滐紝鎰熻榪樿洰婕備寒鐨勶紝鍛靛懙<br><br>澶у鏈変粈涔堢湅娉曞敖閲忕暀璦錛屾偍鐨勫叧娉ㄥ氨鏄鎴戞渶澶х殑甯姪錛侊紒<br><br> <img src ="http://m.shnenglu.com/LittleStar/aggbug/98336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-10-12 00:48 <a href="http://m.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://m.shnenglu.com/LittleStar/archive/2009/09/25/97192.htmlLittle StarLittle StarThu, 24 Sep 2009 19:33:00 GMThttp://m.shnenglu.com/LittleStar/archive/2009/09/25/97192.htmlhttp://m.shnenglu.com/LittleStar/comments/97192.htmlhttp://m.shnenglu.com/LittleStar/archive/2009/09/25/97192.html#Feedback2http://m.shnenglu.com/LittleStar/comments/commentRss/97192.htmlhttp://m.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://m.shnenglu.com/LittleStar/archive/2009/09/24/97084.htmlLittle StarLittle StarWed, 23 Sep 2009 18:09:00 GMThttp://m.shnenglu.com/LittleStar/archive/2009/09/24/97084.htmlhttp://m.shnenglu.com/LittleStar/comments/97084.htmlhttp://m.shnenglu.com/LittleStar/archive/2009/09/24/97084.html#Feedback3http://m.shnenglu.com/LittleStar/comments/commentRss/97084.htmlhttp://m.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://m.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://m.shnenglu.com/LittleStar/archive/2009/09/21/96813.html</guid><wfw:comment>http://m.shnenglu.com/LittleStar/comments/96813.html</wfw:comment><comments>http://m.shnenglu.com/LittleStar/archive/2009/09/21/96813.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/LittleStar/comments/commentRss/96813.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/LittleStar/services/trackbacks/96813.html</trackback:ping><description><![CDATA[<img alt="" src="http://m.shnenglu.com/images/cppblog_com/littlestar/roam1.JPG" width="648" height="513"><br><br>闈㈢墖鏁拌窡甯ф暟姘歌繙鐨勮浜哄緢鐭涚浘銆傝繖鏍蜂互鍚庣獊鍙樺氨寰堜笉鏄庢樉浜嗭紝鑲夌溂鍑犱箮鍙戠幇涓嶄簡錛屼笉榪囨劅瑙夋湁閫鍖栨垚鏅氱殑lod鐨勮秼鍔褲?br>褰撶劧錛岃繙澶勭殑緗戞牸榪樻槸浼氭湁璺沖姩鐜拌薄錛屼笉榪囬偅宸茬粡寰堣繙浜嗭紝涓鑸笉浼氭湁浜烘敞鎰忓埌鍙戠敓浜嗕粈涔堛?br>鍙槸榪欐牱澶уぇ澧炲姞浜嗙綉鏍兼暟閲忥紝搴旂敤涓嬭鏅綋鍓櫎鏁堟灉浼氭瘮榪欎釜濂藉緢澶氬惂錛?br><br><img src ="http://m.shnenglu.com/LittleStar/aggbug/96813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-09-21 01:00 <a href="http://m.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://m.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://m.shnenglu.com/LittleStar/archive/2009/09/20/96742.html</guid><wfw:comment>http://m.shnenglu.com/LittleStar/comments/96742.html</wfw:comment><comments>http://m.shnenglu.com/LittleStar/archive/2009/09/20/96742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/LittleStar/comments/commentRss/96742.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/LittleStar/services/trackbacks/96742.html</trackback:ping><description><![CDATA[<img alt="" src="http://m.shnenglu.com/images/cppblog_com/littlestar/roam.JPG" width="498" height="456"><br><br>榪欎釜鏄垜瀹炵幇鍑烘潵鐨?roam terrain 鍦板艦<br>闂鏄紝褰撴垜鍦ㄥ湴褰笂婕父鏃訛紝緗戞牸蹇呯劧浼氬彂鐢熷彉鍖栥備笉鍚屽眰嬈$殑緗戞牸涔嬮棿璺寵穬鐨勫緢鍘夊錛岃浜鴻寰楀湴褰㈠緢涓嶇湡瀹烇紝<br>鏈夋病鏈変漢鏈夊ソ鐨勫姙娉曡兘瑙e喅錛?br><br><img src ="http://m.shnenglu.com/LittleStar/aggbug/96742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/LittleStar/" target="_blank">Little Star</a> 2009-09-20 00:29 <a href="http://m.shnenglu.com/LittleStar/archive/2009/09/20/96742.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綆鏄撻琛屼豢鐪?鈥斺?鍏ヤ鏡鎴戠殑灝忛晣http://m.shnenglu.com/LittleStar/archive/2009/09/17/96480.htmlLittle StarLittle StarWed, 16 Sep 2009 16:35:00 GMThttp://m.shnenglu.com/LittleStar/archive/2009/09/17/96480.htmlhttp://m.shnenglu.com/LittleStar/comments/96480.htmlhttp://m.shnenglu.com/LittleStar/archive/2009/09/17/96480.html#Feedback7http://m.shnenglu.com/LittleStar/comments/commentRss/96480.htmlhttp://m.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>
            美日韩免费视频| 最新69国产成人精品视频免费| 亚洲欧美综合v| 亚洲视频久久| 在线视频精品| 亚洲一级网站| 欧美专区在线| 欧美91大片| 欧美精品在线视频观看| 欧美国产精品v| 欧美三级网址| 国产亚洲欧美日韩一区二区| 国内外成人在线视频| 亚洲国产精品一区| 亚洲视频免费| 欧美一区免费| 亚洲国产精品成人精品 | 亚洲女女女同性video| 性娇小13――14欧美| 久久天天狠狠| 亚洲精品一区二区三区不| 99国产精品视频免费观看| 欧美电影在线| 国产精品swag| 国内精品久久久久伊人av| 亚洲精品久久久蜜桃| 国产色综合久久| 亚洲另类黄色| 99国产精品99久久久久久粉嫩| 欧美日韩视频第一区| 亚洲视频在线观看| 亚洲欧美日韩精品| 在线 亚洲欧美在线综合一区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美不卡三区| 欧美三日本三级少妇三99 | 国产精品久久久久久久久久久久久 | 99ri日韩精品视频| 久久一区中文字幕| 国产精品一区免费在线观看| 久久综合网络一区二区| 国产精品久久7| 亚洲精品系列| 亚洲一区美女视频在线观看免费| 亚洲大胆人体视频| 一本一本a久久| 欧美视频一区在线观看| 久久精品观看| 亚洲高清毛片| 中文网丁香综合网| 欧美日韩激情小视频| 在线国产欧美| 久久久久一区二区| 欧美在线观看一二区| 夜夜嗨av一区二区三区| 欧美精品日韩| 亚洲黄色毛片| 欧美剧在线免费观看网站| 亚洲深夜av| 久久天天狠狠| 亚洲一区自拍| 老司机精品福利视频| 欧美日一区二区在线观看| 国产亚洲福利| 久久人91精品久久久久久不卡 | 欧美亚洲自偷自偷| 麻豆免费精品视频| 亚洲宅男天堂在线观看无病毒| 免费成人黄色片| 久久精品视频99| 国产一区再线| 鲁大师影院一区二区三区| 欧美影院久久久| 韩国av一区二区三区四区| 久久综合色婷婷| 麻豆av一区二区三区久久| 蘑菇福利视频一区播放| 亚洲激情亚洲| 久久精品一区二区| 欧美亚洲一区在线| 欧美日韩精品在线观看| 欧美成人小视频| 韩国精品在线观看| 亚洲欧美韩国| 国产精品99久久不卡二区| 欧美成人首页| 欧美国产日本在线| 伊人夜夜躁av伊人久久| 久久er99精品| 久久九九国产| 国产精品乱码人人做人人爱| 亚洲免费福利视频| 日韩视频精品在线| 美女露胸一区二区三区| 欧美gay视频| 亚洲国产精品传媒在线观看 | 亚洲欧美日韩国产一区| 国产精品r级在线| 一区二区三区四区五区精品| 亚洲一区二区综合| 国产精品免费在线| 午夜在线视频一区二区区别| 欧美制服丝袜第一页| 国产日韩在线看| 久久精品国产99精品国产亚洲性色| 久久久噜噜噜久久久| 狠狠色狠狠色综合人人| 久久蜜桃香蕉精品一区二区三区| 美女诱惑黄网站一区| 伊人成人在线视频| 欧美成人国产va精品日本一级| 亚洲精品美女91| 亚洲欧美另类中文字幕| 国产欧美日韩中文字幕在线| 久久国产精品99久久久久久老狼| 蜜桃av一区二区三区| 亚洲日本视频| 国产精品久久国产三级国电话系列| 午夜精品网站| 女人香蕉久久**毛片精品| 亚洲欧洲综合| 国产精品久久久| 久久久久欧美精品| 亚洲美女区一区| 久久久久久久久伊人| 亚洲第一二三四五区| 欧美精品首页| 午夜一区二区三区不卡视频| 欧美国产日本在线| 麻豆精品在线视频| 亚洲国内自拍| 亚洲欧美日韩中文播放| 国产一区二区三区在线观看精品 | 日韩一本二本av| 午夜精品av| 亚洲电影天堂av| 欧美性猛交99久久久久99按摩| 久久精品国产91精品亚洲| 亚洲毛片播放| 久热精品视频在线| 亚洲天堂网站在线观看视频| 激情婷婷欧美| 国产精品视频导航| 欧美区一区二区三区| 久久国产99| 洋洋av久久久久久久一区| 另类天堂av| 欧美亚洲一区三区| 夜夜嗨av一区二区三区| 国产综合视频| 国产精品福利影院| 欧美福利电影在线观看| 欧美自拍偷拍| 一个人看的www久久| 亚洲国产毛片完整版| 久久在线免费视频| 欧美制服丝袜| 亚洲一区免费网站| 日韩一级免费观看| 一色屋精品视频免费看| 国产精品福利在线观看网址| 欧美精品在线播放| 免费观看30秒视频久久| 久久成人免费电影| 亚洲午夜在线观看视频在线| 亚洲精品久久久久久一区二区| 欧美电影美腿模特1979在线看| 久久久欧美一区二区| 久久精品中文字幕免费mv| 香蕉久久夜色精品| 亚洲欧美www| 亚洲免费影视| 亚洲欧美日韩天堂一区二区| 一本色道综合亚洲| 夜夜嗨av一区二区三区四季av| 亚洲人被黑人高潮完整版| 亚洲国产一区在线| 91久久线看在观草草青青| 亚洲国产裸拍裸体视频在线观看乱了中文 | 老司机午夜精品视频| 久久久蜜桃精品 | 蜜桃av久久久亚洲精品| 久久香蕉国产线看观看av| 久久精品123| 久久久蜜桃精品| 毛片av中文字幕一区二区| 久久国产精品亚洲va麻豆| 久久久久国产一区二区三区四区| 久久精品成人欧美大片古装| 欧美一区二区成人| 久久精品欧洲| 免费视频最近日韩| 欧美破处大片在线视频| 国产综合视频| 亚洲欧美日韩一区二区三区在线观看| avtt综合网| 午夜在线精品偷拍| 久久精品一区四区| 欧美aaaaaaaa牛牛影院| 欧美精品123区|