锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美激情国产高清,欧美一区二区在线看,欧美精品videossex性护士http://www.shnenglu.com/richardzeng/category/1011.htmlVC++ 鏂歸潰緙栫▼鏂囩珷zh-cnMon, 19 May 2008 22:23:26 GMTMon, 19 May 2008 22:23:26 GMT60Windows GDI CDC 浣跨敤闂http://www.shnenglu.com/richardzeng/archive/2006/07/16/10112.htmlBeginning to 緙栫▼Beginning to 緙栫▼Sat, 15 Jul 2006 19:06:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/07/16/10112.htmlhttp://www.shnenglu.com/richardzeng/comments/10112.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/07/16/10112.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/10112.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/10112.html鏈榪戝湪瀛︿範Hoops聽聽 鐨勫紩鎿庯紙http://www.hoops3d.com )

妯℃嫙瀹冪殑MVO鏋舵瀯錛屼笉榪囨病鏈夊師浠g爜錛屾墍浠ュ緢闅綼
璁捐浜嗕竴涓氦浜掔粯鍥懼熀鏈被錛?br />浣嗘槸榪樻湁閿欒錛岄紶鏍囧乏閿偣鍑諱袱涓?br />聽winGDI.cpp涓嚭閿欍?br />璇峰ぇ铏炬寚鏁欎竴浜屻?br />鎴戝凡緇忓湪榪欎釜闂涓婅姳浜嗗緢澶氱殑蹇冩濄?br />鍏朵腑鏈閲嶈鐨勫氨鏄疨ainter鎶借薄綾葷殑璁捐
浠栫殑瀛愮被QBufferDC緇ф壙CDC
鑰孲GView鍖呭惈Painter鎸囬拡錛屾柟渚垮湪SGView ::drawEntity璋冪敤銆?br />


SGObject - 瀵硅薄鐨勬娊璞$被錛屼篃灝辨槸鍑犱綍瀵硅薄
SGModel- 璐熻矗瀵硅薄綆$悊錛屾病鏈夊疄鐜版墍鏈夌殑鍔熻兘錛屽噯澶囩敤SceneTree鏉ュ疄鐜?br />SGView - 璐熻矗鏄劇ずSGModel涓殑鏁版嵁錛屽叧閿殑鍑芥暟
void SGView::drawEntity(SGObject* pObj)
{
聽聽聽pObj->draw(m_pPainter,this)
}

Painter - 灝佽CDC鐨勫姛鑳?瑙佷唬鐮?br />
鍦–SGView鍒涘緩鐨勬椂鍊欏垱寤篜ainter瀵硅薄
寰堝彲鑳借繖閲屾湁闂錛侊紒錛侊紒錛?br />void CSGView::OnCreate(..)
{
聽聽聽聽聽CDC*聽pDC =聽GetDC();
聽聽聽Painter* painter = new QBufferDC(pDC);
聽聽聽m_pSGView->setPainter(painter);
}


MFC 鐩稿叧鐨凞ocument/View鏋舵瀯
CSGDocument - 綆$悊SGModel

CSGView - 鍜孲GView寤虹珛鑱旂郴錛屽茍璐熻矗鎶妛indows鐨勬秷鎭彂閫佺粰SGView
瑙佸師浠g爜

SGActionManager - 璐熻矗宸ュ叿鐨勭鐞?br />SGBaseAction - 宸ュ叿鐨勬娊璞″熀綾?br />SGActionDrawLine - 緇樺埗鐩寸嚎鐨勫伐鍏?br />


婧愪唬鐮佽繛鎺ワ細
http://www.shnenglu.com/Files/richardzeng/MVOTest.rar



Beginning to 緙栫▼ 2006-07-16 03:06 鍙戣〃璇勮
]]>
璧勬簮鍜岃祫婧愮鐞嗙被鐨勮璁¢棶棰?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Sat, 27 May 2006 14:19:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/7741.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/7741.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/7741.html</trackback:ping><description><![CDATA[ <p> <br />鎴戣璁捐鐨勫簲鐢ㄧ▼搴忓叾涓殑涓涓ā鍧楀氨鏄皝瑁?windows GDI涓殑鐢葷瑪錛岀敾鍒風瓑GDI object<br />鎶奊DI object 鍐嶅皝瑁呮垚resource錛屼互瀹炵幇澶氱鏍峰紡澶氱嚎鏉$殑鐢葷瑪鍙婄敾鍒瘋祫婧?/p> <p>鐢葷瑪錛岀敾鍒風瓑璧勬簮緇ф壙resource<br />涓轟簡閬垮厤鍙戠敓璧勬簮娉勯湶鍜宺esource鐨勭鐞?br />璁捐ResourceManager綾伙紝璐熻矗璧勬簮鐨勫垱寤猴紝鍔犺澆鍜屽嵏杞戒互鍙婂垹闄?/p> <p>涓や釜鎶借薄綾?Resource 鍜?ResourceManager<br />涓や釜鍏蜂綋綾?ConcreateResource 鍜?ConcreateResourceManager<br />鍒嗗埆媧劇敓浜庝笂闈㈢殑鎶借薄綾?/p> <p>浠ヤ笂璁捐鏄湅浜?OGRE 娓告垙寮曟搸鐨勮祫婧愮鐞嗛儴鍒嗭紝<br />瀵瑰畠鐨勮祫婧愮鐞嗙被ResourceManager涓嶆槸寰堢悊瑙?/p> <p>resource 媧劇敓浜唒en,brush絳夌被<br />pen綾誨彲浠ユ潵鑷枃浠訛紝涔熷彲浠ヨ嚜宸卞垱寤篠ubPen 娣誨姞鍒癝ubPenList涓?/p> <p>ResourceManager 璐熻矗鍒涘緩璧勬簮Resource<br />1. 濡傛灉鎴戝湪鎶借薄鐨?ResourceManager 澹版槑 createRes鍑芥暟錛屽茍榪斿洖鍩虹被resource<br />鍔垮繀浼氳寮哄埗杞崲錛岀劧鍚庡湪鐢ㄥ埌鍏蜂綋鐨凴esource鏃跺欏張瑕佽漿鎹㈠洖鏉?/p> <p>2. 濡傛灉鎴戝湪鍏蜂綋綾?ConcreateResourceManager 澹版槑 createConcreateRes鍑芥暟<br />閭d箞灝辯櫧璐逛簡鎴戝簲鐢ㄨ璁℃ā寮忚璁¤繖涔堝綾?/p> <p> <br />// abstract class for resource<br />class Resource{<br />public:<br />聽// standard constructor<br />聽 Resource(const string& name, const string& group)<br />聽:mName(name),mGroup(group){}<br />聽 ~Resource(){}<br />protected:<br />聽// prevent default construct<br />聽 Resource():mName(""),mGroup(""){}<br />聽 string mName;<br />聽 string mGroup;<br />聽 static unsigned long mHandle;<br />};</p> <p>// subclass of resource<br />// concreateResource such as PEN<br />class Pen:<br />聽public Resource{<br />聽Pen(const string& name, const string& group)<br />聽聽:Resource(name,group){}<br />聽聽~Pen(){}<br /><br />聽 void loadfromFile(string& filename);<br /><br />// add聽into vector<br />聽 void addSubPen(SubPen* sub){<br />聽聽聽聽 mSubPenList.push_back(sub);<br />}<br />public:<br />typedef std::vector<SubPen> SubPenList;<br />SubPenList mSubPenList;</p> <p>};<br />class <br />// abstract class for resource manager<br />class ResourceManager{<br />public:<br />聽 ResourceManager(){}<br />聽 ~ResourceManager(){}<br />public:<br />// here , I cannot understand OGRE degsin<br />聽 Resource* createRes(const string& name,const string& group);<br />聽// resource map <br />銆typedef std::map<string,Resource*> ResourceMap;<br />聽聽 ResourceMap mResources;</p> <p>};</p> <p>// subclass ResourceManager<br />class ConcreateResourceManager<br />聽:public ResourceManager<br />{<br />聽ConcreateResourceManager(){}<br />聽~ConcreateResourceManager(){}</p> <p>聽聽聽聽聽 // how can design here!!<br />聽聽聽聽聽聽 Pen* createPen(const string& name,const string& group){}<br />}</p> <p>聽</p> <img src ="http://www.shnenglu.com/richardzeng/aggbug/7741.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-05-27 22:19 <a href="http://www.shnenglu.com/richardzeng/archive/2006/05/27/7741.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++涓璖ingleton鐨勫疄鐜癧zhuan]http://www.shnenglu.com/richardzeng/archive/2006/04/21/5999.htmlBeginning to 緙栫▼Beginning to 緙栫▼Fri, 21 Apr 2006 01:31:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/04/21/5999.htmlhttp://www.shnenglu.com/richardzeng/comments/5999.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/04/21/5999.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/5999.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/5999.html
榪欎簺涓滆タ鍦ㄧ綉涓婇兘寰堝浜嗭紝浣嗘槸鎴戣寰椾粬浠殑浣跨敤閮戒笉絎﹀悎鎴戠殑瑕佹眰錛屾墍浠ヨ嚜宸卞姩鎵嬩赴琛h凍椋燂紝鍐欎竴涓嚜宸辮兘鐢ㄧ殑錛屽鐢ㄥ氨濂姐?/div>
#include <iostream>
using namespace std;
//鍗曚歡妯℃澘綾?/div>
template<typename T> class Singleton
{
protected:
聽 static T* m_Instance;
聽 Singleton(){}
聽 virtual~Singleton(){}
public:
聽 //瀹炰緥鐨勮幏寰?/div>
聽 static T* Instance()
聽 {
聽聽聽 if(m_Instance==0)
聽聽聽聽聽 m_Instance=new T;
聽聽聽 return m_Instance;
聽 }
聽 //鍗曚歡綾葷殑閲婃斁
聽 virtual void Release()
聽 {
聽聽聽 if(m_Instance!=0)
聽聽聽 {
聽聽聽聽聽 delete m_Instance;
聽聽聽聽聽 m_Instance=0;
聽聽聽 }
聽 }
};
//鍗曚歡妯℃澘嫻嬭瘯綾?/div>
class Test:public Singleton<Test>
{
聽 friend class Singleton<Test>; //澹版槑涓哄弸鍛橈紝涓嶇劧浼氬嚭閿?/div>
protected:
聽 Test()
聽 {
聽聽聽 a=b=c=0;
聽 }
聽 virtual ~Test(){}
public :
聽 int a;
聽 int b;
聽 int c;
};
//鍒濆鍖栭潤鎬佹垚鍛樸傘傘?/div>
template<> Test*Singleton<Test>::m_Instance=0;
//浠ヤ笅涓烘祴璇曚唬鐮?/div>
void main()
{
聽 Test*t=Test::Instance();
聽 t->a=5;
聽 t->b=25;
聽 t->c=35;
聽 cout<<"t: a="<<t->a<<" b="<<t->b<<" c="<<t->c<<endl;
聽 Test*t2;
聽 t2=Test::Instance();
聽 cout<<"t2 a="<<t2->a<<" b="<<t2->b<<" c="<<t2->c<<endl;
聽 t2->Release();
}


Beginning to 緙栫▼ 2006-04-21 09:31 鍙戣〃璇勮
]]>
娉㈠艦鏄劇ず涓嶆槸寰堥毦 /zhuanhttp://www.shnenglu.com/richardzeng/archive/2006/03/16/4229.htmlBeginning to 緙栫▼Beginning to 緙栫▼Thu, 16 Mar 2006 03:00:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/16/4229.htmlhttp://www.shnenglu.com/richardzeng/comments/4229.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/16/4229.html#Feedback1http://www.shnenglu.com/richardzeng/comments/commentRss/4229.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/4229.html

WaveShow_src.rar

Beginning to 緙栫▼ 2006-03-16 11:00 鍙戣〃璇勮
]]>
澶у皬鍐欒漿鎹㈢殑鏂規(guī)硶銆怌/C++銆?/zhuanhttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4195.htmlBeginning to 緙栫▼Beginning to 緙栫▼Wed, 15 Mar 2006 05:31:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4195.htmlhttp://www.shnenglu.com/richardzeng/comments/4195.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4195.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/4195.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/4195.html
ASCII鐮佽〃澶у閮藉緢鐔熸?zhèn)変簡鍚уQ屽埄鐢ㄧ爜鐨勬帓鍒楄寰嬶紝鎴戜滑鍙互寰堝鏄撶殑瀹炵幇涓浜涙搷浣滐紝姣斿鍒ゆ柇鏄惁鏄暟瀛椼佸ぇ灝忓啓杞崲絳夈?/DIV>
榪欓噷鍐欏ぇ灝忓啓杞崲鐨勫嚱鏁?
char toUpper(const char& ch)
{
    return ch & 0x5F;
}
char toLower(const char& ch)
{
    return ch | 0x20;
}
 
鍑芥暟鍘熺悊錛氬ぇ灝忓啓瀛楁瘝鐨勫樊鏄?2錛屾瘮濡傚ぇ鍐欑殑A鏄?5錛屽皬鍐欑殑A鏄?7錛屾墍浠ユ垜浠妸鍙寵竟鏁扮6浣嶇疆0鎴栬?灝辮兘瀹炵幇澶у皬鍐欒漿鎹€傝漿鎹㈡垚澶у啓鏃訛紝鎶婄6浣嶇疆0錛岀敤ch & 0x5F瀹炵幇銆傝漿鎹㈡垚灝忓啓鏃剁疆1錛岀敤ch | 0x20瀹炵幇銆傛庝箞鏍鳳紝鐩稿綋鐨勭畝鍗曞惂錛岀敱姝わ紝鎴戜滑鍙互鍐檚tring綾葷殑toUpper鍜宼oLower鍑芥暟浜嗐俕_^錛屾洿澶氭妧宸у敖鍦ㄦ帰绱腑銆?/DIV>


]]>嫻呰皥CMPP鍗忚錛堜竴錛?/zhuanhttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4186.htmlBeginning to 緙栫▼Beginning to 緙栫▼Wed, 15 Mar 2006 04:25:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4186.htmlhttp://www.shnenglu.com/richardzeng/comments/4186.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4186.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/4186.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/4186.html     CMPP鍗忚鐨勫叏縐版槸涓浗縐誨姩閫氫俊浜掕仈緗戠煭淇$綉鍏蟲帴鍙e崗璁紝瀹冩槸鑱旀兂浜氫俊鍏徃鏍規(guī)嵁SMMP鍗忚涓轟腑鍥界Щ鍔ㄩ噺韜畾鍋氱殑錛屾槸絎﹀悎涓浗鍥芥儏鐨勪竴涓煭淇″崗璁紝闂茶瘽涓嶅璇翠簡錛岃璇碈MPP鐨勪富瑕佸姛鑳藉惂銆傦紙1錛夌煭淇″彂閫侊紙short message mobile originate錛塎O錛屽氨鏄墜鏈虹粰SP鍙戠煭淇★紱錛?錛夌煭淇℃帴鍙楋紙short message mobile terminated錛塎T錛岃繖涓氨鏄疭P緇欐墜鏈哄彂鐨勭煭淇′簡錛岄氬父鎴戜滑鎵嬫満涓婃敹鍒扮殑涓嶈壇鐭俊灝辨槸SP緇欐垜浠殑MT銆侰MPP鍗忚鐨勯氫俊鍩虹鏄疶CP/IP涓哄簳灞傞氫俊鎵胯澆鐨勶紝榪炴帴鏂瑰紡鏄暱榪炴帴鏂瑰紡銆係P涓嶪SMG涔嬮棿錛孲MSC鍜孖SMG涔嬮棿鐨勪氦浜掕繃紼嬩腑鍧囬噰鐢ㄥ紓姝ユ柟寮忥紝鍗充換涓涓綉鍏冨湪鏀跺埌璇鋒眰娑堟伅鍚庡簲绔嬪嵆鍥炲簲銆?/FONT>
   涓嬮潰鐪嬬湅瀹冪殑娑堟伅瀹氫箟錛欳MPP涓殑娑堟伅鍒嗕負娑堟伅澶村拰娑堟伅浣撱傛秷鎭ご瀹氫箟濡備笅
 
 

瀛楁鍚?/SPAN>

瀛楄妭鏁?/SPAN>

綾誨瀷

鎻忚堪

Total_Length  

4

Unsigned Integer

娑堟伅鎬婚暱搴?/SPAN>(鍚秷鎭ご鍙婃秷鎭綋)

Command_Id

4

Unsigned Integer

鍛戒護鎴栧搷搴旂被鍨?/SPAN>

Sequence_Id

4

Unsigned Integer

娑堟伅嫻佹按鍙?/SPAN>,欏哄簭绱姞,姝ラ暱涓?/SPAN>1,寰幆浣跨敤錛堜竴瀵硅姹傚拰搴旂瓟娑堟伅鐨勬祦姘村彿蹇呴』鐩稿悓錛?/SPAN>

 
閭d箞涓嬮潰灝辨槸SP榪炴帴鍒癐SMG涓婁簡錛岀湅瀹冪殑Bind榪炴帴娑堟伅瀹氫箟
 

瀛楁鍚?/SPAN>

瀛楄妭鏁?/SPAN>

灞炴?/SPAN>

鎻忚堪

Source_Addr 

6

Octet String

婧愬湴鍧錛屾澶勪負SP_Id錛屽嵆SP鐨勪紒涓氫唬鐮併?/SPAN>

AuthenticatorSource

16

Octet String

鐢ㄤ簬閴村埆婧愬湴鍧銆傚叾鍊奸氳繃鍗曞悜MD5 hash璁$畻寰楀嚭錛岃〃紺哄涓嬶細

AuthenticatorSource =

MD5錛?/SPAN>Source_Addr+9 瀛楄妭鐨?/SPAN>0 +shared secret+timestamp錛?/SPAN>

Shared secret 鐢變腑鍥界Щ鍔ㄤ笌婧愬湴鍧瀹炰綋浜嬪厛鍟嗗畾錛?/SPAN>timestamp鏍煎紡涓猴細MMDDHHMMSS錛屽嵆鏈堟棩鏃跺垎縐掞紝10浣嶃?/SPAN>

Version

1

Unsigned Integer

鍙屾柟鍗忓晢鐨勭増鏈彿(楂樹綅4bit琛ㄧず涓葷増鏈彿,浣庝綅4bit琛ㄧず嬈$増鏈彿)錛屽浜?/SPAN>3.0鐨勭増鏈紝楂?/SPAN>4bit涓?/SPAN>3錛屼綆4浣嶄負0

Timestamp

4

Unsigned Integer

鏃墮棿鎴崇殑鏄庢枃,鐢卞鎴風浜х敓,鏍煎紡涓?/SPAN>MMDDHHMMSS錛屽嵆鏈堟棩鏃跺垎縐掞紝10浣嶆暟瀛楃殑鏁村瀷錛屽彸瀵歸綈 銆?/SPAN>

 
鏍規(guī)嵁涓婄殑瀹氫箟鎴戜滑鍙互鍐欏嚭鐨勪唬鐮侊紝濡備笅錛屽湪VC鐜涓嬬紪鍐欑殑

/*
 *鍑芥暟鍔熻兘錛氬緩绔嬪拰CMPP緗戝叧鐨勭洿鎺ラ氳礬
 *杈撳叆鏉′歡錛歋P鐢ㄦ埛鍚峜onst char *UserName,SP瀵嗙爜const char *PWD 
 */
void Ccmpp_API::CmppConnect(const char *UserName, const char *PWD)
{
 char netbuf[100];
 CMPP_CONNECT *bufer;
 bufer=(CMPP_CONNECT*)netbuf;
 memset(bufer, 0, 100);
 bufer->nTotalLength = htonl(39);//CMPP_CONNECT娑堟伅鎬婚暱搴?BR> bufer->nCommandId = htonl(CMPP_CONNECT_tag);//娑堟伅鏍囧織
 //鑷姩浜х敓SeqId鍙?BR>    if (sequenceid == 123456789i32)
 {
  sequenceid = 1;
 }else{
  sequenceid++;
 }
 bufer->nSeqId = htonl(sequenceid);
   
 int MD5Len;
 MD5_CTX md5;//MD5婧愬瓧涓?BR> CTime TimeData = CTime::GetCurrentTime();
 CString timestamp = TimeData.Format("%m%d%H%M%S");
 unsigned char md5source[29];
 int Len1 = strlen(UserName);
 int Len2 = strlen(PWD); 
 MD5Len = Len1 + 9 +Len2 + timestamp.GetLength();
 memset(md5source, 0, MD5Len);
 
 memcpy(bufer->sSourceAddr, UserName, Len1);
 memcpy(md5source, UserName, Len1);
 
 for (int j = 0; j<Len2; j++)
 {
  md5source[j + Len1 + 9] = PWD[j];
 }
 for (int i=0;i<timestamp.GetLength();i++)
 {
  md5source[i + Len2 + Len1 + 9]=timestamp[i];
 }
 
 //榪涜md5鍔犲瘑杞崲
 md5.MD5Update(md5source, MD5Len);
 md5.MD5Final(md5source);
 memcpy(bufer->sAuthSource, md5source, 29);
 bufer->cVersion = 0x30;
 bufer->nTimeStamp = htonl(atoi(timestamp));
 CmppSocket.Send(bufer, 39, 0);//鎶婃秷鎭墦鍖呭彂閫?BR> return;
}
 
浠婂ぉ灝卞埌榪欙紝涓嬫鍐嶅啓錛屾榪庝氦嫻侊紒


FeedBack:

# re: 嫻呰皥CMPP鍗忚錛堜竴錛?/DIV>
2006-03-15 10:38 | 灝忔槑
you say:
SP涓嶪SMG涔嬮棿錛孲MSC鍜孖SMG涔嬮棿鐨勪氦浜掕繃紼嬩腑鍧囬噰鐢ㄥ紓姝ユ柟寮忥紝鍗充換涓涓綉鍏冨湪鏀跺埌璇鋒眰娑堟伅鍚庡簲绔嬪嵆鍥炲簲銆?

鏃㈢劧鏄紓姝ユ柟寮忥紝灝變笉鏄敹鍒拌姹傚悗绔嬪嵆鍥炲簲錛屽惁鍒欏氨鏄悓姝ユ柟寮忎簡

鎹垜鎵鐭ワ紝CMPP閲囩敤鐨勫熀浜庢粦鍔ㄧ獥鍙g殑寮傛鏂瑰紡錛岄粯璁ゆ儏鍐典笅鍙互鍙戞渶澶?6鐨凜MPP package,鑰屼笉蹇呯瓑寰呬粬浠殑resp.  鍥炲
  


]]>涓轟粈涔堝湪VS2005閲嶈澆杈撳嚭榪愮畻絎﹂偅涔堥毦 /zhuanhttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4179.htmlBeginning to 緙栫▼Beginning to 緙栫▼Wed, 15 Mar 2006 03:57:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4179.htmlhttp://www.shnenglu.com/richardzeng/comments/4179.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/15/4179.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/4179.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/4179.html闃呰鍏ㄦ枃

]]>
VC涓洖璋冨嚱鏁頒嬌鐢ㄧ殑鍙樿韓澶ф硶 /zhuanhttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4142.htmlBeginning to 緙栫▼Beginning to 緙栫▼Tue, 14 Mar 2006 09:33:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4142.htmlhttp://www.shnenglu.com/richardzeng/comments/4142.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4142.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/4142.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/4142.html
銆銆1銆佸湪榪欓噷璁撅細鍥炶皟鍑芥暟涓篈()(榪欐槸鏈綆鍗曠殑鎯呭喌錛屼笉甯﹀弬鏁幫紝浣嗘垜浠簲鐢ㄧ殑瀹為檯鎯呭喌甯稿父寰堜細澶嶆潅)錛屼嬌鐢ㄥ洖璋冨嚱鏁扮殑鎿嶄綔鍑芥暟涓築()錛?浣咮鍑芥暟鏄渶瑕佸弬鏁扮殑錛岃繖涓弬鏁板氨鏄寚鍚戝嚱鏁癆鐨勫湴鍧鍙橀噺錛岃繖涓彉閲忎竴鑸氨鏄嚱鏁版寚閽堛備嬌鐢ㄦ柟娉曚負錛?BR>
int A(char *p); // 鍥炶皟鍑芥暟
typedef int(*CallBack)(char *p) ; // 澹版槑CallBack 綾誨瀷鐨勫嚱鏁版寚閽?
CallBack myCallBack ; // 澹版槑鍑芥暟鎸囬拡鍙橀噺
myCallBack = A; // 寰楀埌浜嗗嚱鏁癆鐨勫湴鍧

銆銆B鍑芥暟涓鑸細鍐欎負 B(CallBack lpCall,char * P,........); // 姝ゅ鐪佺暐浜唒鍚庣殑鍙傛暟褰㈠紡 銆?

銆銆鎵浠ュ洖璋冩満鍒跺彲瑙d負錛屽嚱鏁癇瑕佸畬鎴愪竴瀹氬姛鑳斤紝浣嗕粬鑷繁鏄棤娉曞疄鐜板叏閮ㄥ姛鑳界殑銆?闇瑕佸熷姪浜庡嚱鏁癆鏉ュ畬鎴愶紝涔熷氨鏄洖璋冨嚱鏁般侭鐨勫疄鐜頒負錛?BR>
B(CallBack lpCall,char *pProvide)
{
銆........... // B 鐨勮嚜宸卞疄鐜板姛鑳借鍙?BR>銆lpCall(PpProvide); // 鍊熷姪鍥炶皟瀹屾垚鐨勫姛鑳?錛屼篃灝辨槸A鍑芥暟鏉ュ鐞嗙殑銆?
銆........... // B 鐨勮嚜宸卞疄鐜板姛鑳借鍙?BR>}
// -------------- 浣跨敤渚嬪瓙 -------------
char *p = "hello!";
CallBack myCallBack ;
myCallBack = A ;
B(A, p);

銆銆浠ヤ笂灝辨槸鍥炶皟鐨勫熀鏈簲鐢紝鏈枃鎵璇寸殑鍙樿韓錛屽叾瀹炴槸鍒╃敤浼犲叆涓嶅悓鐨勫嚱鏁板湴鍧錛屽疄鐜拌皟鐢ㄨ呯被涓庡洖璋冨嚱鏁版墍鍦ㄧ被鐨勪笉鍚岃漿鎹€?BR>
銆銆1銆侀棶棰樻弿榪?BR>
銆銆CUploadFile 綾誨畬鎴愭暟鎹笂浼狅紝涓庣浉搴旂殑鐣岄潰榪涘害鏄劇ず銆?BR>
銆銆涓昏鍑芥暟Send(...) 鍜屽洖璋冨嚱鏁?GetCurState() ;

class CUploadFile : public CDialog
{
銆......
銆int Send(LPCTSTR lpServerIP, LPCTSTR lpServerPort, LPCTSTR UploadFilePath) ;
銆static int GetCurState(int nCurDone, int nInAll, void * pParam) ;
銆......
}
int CUploadFile ::Send(LPCTSTR lpServerIP, LPCTSTR lpServerPort, LPCTSTR UploadFilePath)
{
銆... // 瀵煎嚭浼犺緭鏁版嵁鐨勫嚱鏁?
銆int ret = Upload( (LPSTR)(LPCTSTR)m_strData,
銆銆銆銆GetCurState, // 鍦ㄨ繖涓洖璋冨嚱鏁頒腑澶勭悊鐣岄潰
銆銆銆銆this, // CUploadFile 鐨勮嚜韜寚閽?錛屼篃灝辨槸pParam 鎵鎺ュ彈鐨勫弬鏁?
銆銆銆銆(LPSTR)(LPCTSTR)UploadFilePath,
銆銆銆銆"",
銆銆銆銆"",
銆);
}
int CUploadFile ::GetCurState(int nCurData, int nInAll, void * pParam)
{
銆.........
銆UploadFile *pThis = (UploadFile *)pParam; // nCurData 褰撳墠浠ヤ紶鍑虹殑鏁版嵁閲?
銆// nInAll 鎬葷殑鏁版嵁閲?BR>銆// 鏈変簡pThis鍙互瀵圭晫闈㈣繘琛屽悇縐嶆搷浣滀簡銆?
銆.............
}

銆銆浣嗗ぇ瀹朵粩緇嗚瀵熷氨鍙互鍙戠幇錛岃繖涓被鎶婃暟鎹紶閫佸拰鐣岄潰鏄劇ず鑱氬拰鍒頒簡涓璧鳳紝涓嶅鏄撳緱鍒板鐢ㄣ傝屼笖鍦ㄥ鐢ㄨ繃紼嬩腑闇瑕佹敼鍔ㄨ緝澶氱殑鍦版柟 銆?BR>
銆銆璇峰ぇ瀹惰浣忕幇鍦ㄧ殑鍥炶皟鍑芥暟浼犲叆鐨勭被鏈韓鐨勯潤鎬佹垚鍛樺嚱鏁般?

銆銆鐜板湪鎴戜滑鎶婃暟鎹殑浼犻佸拰鐣岄潰鐨勬樉紺哄垎紱匯傚洖璋冨垯瑕佷紶鍏ョ殑鏄晫闈㈠鐞嗙被鐨勯潤鎬佸嚱鏁般?BR>
銆銆鐣岄潰澶勭悊綾?CShowGUI,鏁版嵁涓婁紶綾?CUploadData

class CUploadData
{
銆......
銆typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
銆int UploadFile(LPCTSTR lpFileNamePath,LPVOID lparam,SetUploadCaller Caller );
銆// 鎺ュ彈澶栫晫鍑哄叆鐨勫弬鏁?涓昏鏄洖璋冨嚱鏁扮殑鍦板潃閫氳繃鍙傛暟Caller,
銆int Send(LPCTSTR lpServerIP, LPCTSTR lpServerPort, LPCTSTR UploadFilePath) ;
銆...... // 娉ㄦ剰姝ゆ椂涓嶅湪闇瑕丟etCurState 鍑芥暟浜?銆?BR>}

class CShowGUI: public CDialog
{
銆.......
銆typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
銆void SetCallBack(LPCTSTR strPath);
銆static int GetCurState(int nCurData, int nInAll, void * pParam) ;
銆CUploadData m_Uploa
銆d ; // 鏁版嵁涓婁紶綾繪槸鐣岄潰鏄劇ず綾葷殑涓涓垚鍛樺彉閲忋?
銆.......
}

void CShowGUI :: SetCallBack(LPCTSTR strPath)
{
銆CUploadData myUploadData ;
銆SetUploadCaller myCaller; // 澹版槑涓涓嚱鏁版寚閽堝彉閲?
銆myCaller = CurState ; // 鍙栧緱鐣岄潰澶勭悊鍑芥暟鐨勫湴鍧
銆myUploadData .UploadFile(strPath,this,myCaller); // 鐣岄潰澶勭悊綾葷殑鍑芥暟浼犲叆,瀹炵幇浜嗘暟鎹紶鍏ヤ笌鐣岄潰澶勭悊鐨勫垎紱?.
}

銆銆閫氳繃涓婇潰鐨勬紨紺哄仛鍒頒簡鐣岄潰涓庢暟鎹殑鍒嗙,鍥炶皟鍑芥暟鍒嗗埆鎵紨浜嗕笉鍚岃鑹?鎵浠ラ殢鐫澶勭悊闂鐨勪笉鍚屽簲鐏墊椿搴旂敤錛屼絾鍚屾牱鍥犱負澶勭悊鏁版嵁綾諱笉鐭ラ亾鐣岄潰澶勭悊綾繪垨澶栭儴璋冪敤綾葷殑綾誨瀷錛岃屾洿鏃犳硶鐏墊椿鍦板鐞嗙晫闈㈢殑涓嶅悓鏄劇ず鏂瑰紡銆傝繖鏂歸潰榪樺笇鏈涘枩嬈㈤捇鐮旀妧鏈殑鏈嬪弸緇х畫鐮旂┒銆?A >闄堝垰

]]>
C++鎸囬拡鎺㈣ (浜? 鍑芥暟鎸囬拡 /zhuanhttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4137.htmlBeginning to 緙栫▼Beginning to 緙栫▼Tue, 14 Mar 2006 08:44:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4137.htmlhttp://www.shnenglu.com/richardzeng/comments/4137.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4137.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/4137.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/4137.html銆銆鎴戜滑鍏堢畝鍗曠殑璇翠竴涓嬪嚱鏁版寚閽堛傦紙榪欎竴閮ㄤ喚娌′粈涔堜環(huán)鍊鹼紝綰槸涓轟簡寮曞嚭涓嬩竴鑺傜殑鍐呭錛?BR>   
銆2 甯歌鍑芥暟鎸囬拡

        void(*fp)();

銆銆fp 鏄竴涓吀鍨嬬殑鍑芥暟鎸囬拡錛岀敤浜庢寚鍚戞棤鍙傛暟錛屾棤榪斿洖鍊肩殑鍑芥暟銆?/P>

        void(*fp2)(int);

銆銆fp2 涔熸槸涓涓嚱鏁版寚閽堬紝鐢ㄤ簬鎸囧悜鏈変竴涓暣鍨嬪弬鏁幫紝鏃犺繑鍥炲肩殑鍑芥暟銆?BR>銆銆褰撶劧錛屾湁緇忛獙浜哄+涓鑸兘浼氬緩璁嬌鐢╰ypedef鏉ュ畾涔夊嚱鏁版寚閽堢殑綾誨瀷錛屽錛?/P>

        typedef void(* FP)();
        FP fp3; 
// 鍜屼笂闈㈢殑fp涓鏍風殑瀹氫箟銆?/SPAN>

銆銆鍑芥暟鎸囬拡涔嬫墍浠ヨ鍒濆鑰呯晱鎯э紝鏈涓昏鐨勫師鍥犳槸瀹冪殑鎷彿澶浜嗭紱鏌愪簺鐢ㄩ旂殑鍑芥暟鎸囬拡錛屽線寰浼氳浜洪櫡鍦ㄦ嫭鍙峰爢涓嚭涓嶆潵錛岃繖閲屽氨涓嶄婦渚嬩簡錛屽洜涓轟笉鏄湰鏂囪璁虹殑鑼冨洿錛泃ypedef 鏂規(guī)硶鍙互鏈夋晥鐨勫噺灝戞嫭鍙風殑鏁伴噺錛屼互鍙婄悊娓呭眰嬈★紝鎵浠ュ彈鍒版帹鑽愩傛湰鏂囨殏鏃跺彧鑰冭檻綆鍗曠殑鍑芥暟鎸囬拡錛屽洜姝ゆ殏涓嶇敤鍒皌ypedef銆?BR>
銆銆鍋囧鏈夊涓嬩袱涓嚱鏁幫細

  void f1()
  
{
      std::cout 
<< "call f " << std::endl;
  }

  
  
void f2(int a)
  
{
      std::cout 
<< "call f2( " << a << " )" << std::endl;
  }

銆銆鐜板湪闇瑕侀氳繃鍑芥暟鎸囬拡鏉ヨ皟鐢紝鎴戜滑闇瑕佺粰鎸囬拡鎸囧畾鍑芥暟錛?/P>

  fp = &f1; // 涔熷彲浠ョ敤錛歠p = f1;
  fp2= &f2; // 涔熷彲浠ョ敤錛歠p2= f2;
  void (*fp3)() = &f1; // 涔熷彲浠ョ敤錛歷oid (*fp3)() = f1;  
  
//璋冪敤鏃跺涓嬶細
  fp(); // 鎴?nbsp;(*fp)();
  fp2(1); // 鎴?nbsp;(*fp2)(1);
  fp3();  // 鎴?nbsp;(*fp3)();

銆銆瀵逛簬姝や袱縐嶈皟鐢ㄦ柟娉曪紝鏁堟灉瀹屽叏涓鏍鳳紝鎴戞帹鑽愮敤鍓嶄竴縐嶃傚悗涓縐嶄笉浠呬粎鏄鎵撲簡閿洏錛岃屼笖涔熸崯澶變簡涓浜涚伒媧繪с傝繖閲屾殏涓斾笉璇村畠銆?BR>  
銆銆C++寮鴻皟綾誨瀷瀹夊叏銆備篃灝辨槸璇達紝涓嶅悓綾誨瀷鐨勫彉閲忔槸涓嶈兘鐩存帴璧嬪肩殑錛屽惁鍒欒交鍒欒鍛婏紝閲嶅垯鎶ラ敊銆傝繖鏄竴涓緢鏈夌敤鐨勭壒鎬э紝甯稿父鑳藉府鎴戜滑鎵懼埌闂銆傚洜姝わ紝鏈夎瘑涔嬪+璁や負錛孋++涓殑浠諱綍涓澶栬鍛婇兘涓嶈兘蹇借銆傜敋鑷蟲湁浜烘彁鍑猴紝緙栬瘧鐨勬椂鍊欎笉鑳藉嚭鐜頒換浣曡鍛婁俊鎭紝涔熷氨鏄錛岃鍛婂簲璇ュ綋浣滈敊璇竴鏍峰鐞嗐?BR>  
銆銆姣斿錛屾垜浠妸f1璧嬪肩粰fp2錛岄偅涔圕++緙栬瘧鍣?vc7.1)灝變細鎶ラ敊錛?/P>

  fp2 = &f1; // error C2440: 鈥?鈥?nbsp;: 鏃犳硶浠庘渧oid (__cdecl *)(void)鈥濊漿鎹負鈥渧oid (__cdecl *)(int)鈥?/SPAN>
  fp1 = &f1; // OK

銆銆榪欐牱錛岀紪璇戝櫒鍙互甯垜浠壘鍑虹紪鐮佷笂鐨勯敊璇紝鑺傜渷浜嗘垜浠殑鎺掗敊鏃墮棿銆?BR>  
銆銆鑰冭檻涓涓婥++鏍囧噯妯℃澘搴撶殑sort鍑芥暟錛?/P>

  // 蹇熸帓搴忓嚱鏁?/SPAN>
  template<typename RandomAccessIterator, typename BinaryPredicate>
     
void sort(
        RandomAccessIterator _First, 
// 闇鎺掑簭鏁版嵁鐨勭涓涓厓绱犱綅緗?/SPAN>
        RandomAccessIterator _Last,  // 闇鎺掑簭鏁版嵁鐨勬渶鍚庝竴涓厓绱犱綅緗紙涓嶅弬涓庢帓搴忥級
        BinaryPredicate _Comp     // 鎺掑簭浣跨敤鐨勬瘮杈冪畻娉?鍙互鏄嚱鏁版寚閽堛佸嚱鏁板璞$瓑)
     );

銆銆姣斿錛屾垜浠湁涓涓暣鍨嬫暟緇勶細

  int n[5= {3,2,1,8,9};

銆銆瑕佸瀹冭繘琛屽崌搴忔帓搴忥紝鎴戜滑闇瀹氫箟涓涓瘮杈冨嚱鏁幫細

  bool less(int a, int b)
  
{
      
return a < b; 
  }

銆銆鐒跺悗鐢細

  sort(n, n+5, less);

銆銆瑕佹槸鎯沖瀹冭繘琛岄檷搴忔帓搴忥紝鎴戜滑鍙鎹竴涓瘮杈冨嚱鏁板氨鍙互浜嗐侰/C++鐨勬爣鍑嗘ā鏉垮凡緇忔彁渚涗簡less鍜実reat鍑芥暟錛屽洜姝ゆ垜浠彲浠ョ洿鎺ョ敤涓嬮潰鐨勮鍙ユ潵姣旇緝錛?nbsp; 

  sort(n, n+5, great);


銆銆榪欐牱錛屼笉闇瑕佹敼鍙榮ort鍑芥暟鐨勫畾涔夛紝灝卞彲浠ユ寜浠繪剰鏂規(guī)硶榪涜鎺掑簭錛屾槸涓嶆槸寰堢伒媧伙紵  
銆銆榪欑鐢ㄦ硶浠++鐨勬爣鍑嗘ā鏉垮簱(STL)涓潪甯告祦琛屻傚彟澶栵紝鎿嶄綔緋葷粺涓篃緇忓父浣跨敤鍥炶皟(CallBack)鍑芥暟錛屽疄闄呬笂錛屾墍璋撳洖璋冨嚱鏁幫紝鏈川灝辨槸鍑芥暟鎸囬拡銆?/P>

銆銆鐪嬭搗鏉ュ緢綆鍗曞惂錛岃繖鏄渶鏅氱殑C璇█鎸囬拡鐨勭敤娉曘傛湰鏉ヨ繖鏄竴涓緢緹庡鐨勪簨鎯咃紝浣嗘槸褰揅++鏉ヤ復鏃訛紝涓栫晫灝卞紑濮嬪彉浜嗘牱銆?BR>銆銆鍋囧錛岀敤鏉ヨ繘琛宻ort鐨勬瘮杈冨嚱鏁版槸鏌愪釜綾葷殑鎴愬憳錛岄偅鍙堝浣曞憿錛?BR>



]]>
C++鎸囬拡鎺㈣ (涓? 鎴愬憳鍑芥暟鎸囬拡 /zhuanhttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4135.htmlBeginning to 緙栫▼Beginning to 緙栫▼Tue, 14 Mar 2006 08:42:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4135.htmlhttp://www.shnenglu.com/richardzeng/comments/4135.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/14/4135.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/4135.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/4135.html銆銆鐒惰孋++鐨勬寚閽堝嵈甯稿父緇欐垜涓縐嶆潫鎵嬫潫鑴氱殑鎰熻銆侰++姣擟璇█鏈夋洿涓ユ牸鐨勯潤鎬佺被鍨嬶紝鏇村姞寮鴻皟綾誨瀷瀹夊叏錛屽己璋冪紪璇戞椂媯鏌ャ傚洜姝わ紝瀵逛簬C璇█涓渶瀹規(guī)槗閿欑敤鐨勬寚閽堬紝鏇存槸涓嶈兘鏀捐繃錛欳++鐨勬寚閽堣鍒嗘垚鏁版嵁鎸囬拡錛屾暟鎹垚鍛樻寚閽堬紝鍑芥暟鎸囬拡錛屾垚鍛樺嚱鏁版寚閽堬紝鑰屼笖涓嶈兘闅忎究鐩鎬簰杞崲銆傝屼笖榪欎簺鎸囬拡鐨勫0鏄庢牸寮忛兘涓嶄竴鏍鳳細

鏁版嵁鎸囬拡 T *
鎴愬憳鏁版嵁鎸囬拡 T::*
鍑芥暟鎸囬拡 R (*)(...)
鎴愬憳鍑芥暟鎸囬拡 R (T::*)(...)

銆銆灝界C++涓粛鐒舵湁涓囪兘鎸囬拡void*錛屼絾瀹冨嵈灞炰簬琚壒鏂楃殑瀵硅薄錛岃屼笖鍐嶄篃涓嶈兘鈥滀竾鑳解濅簡銆傚畠涓嶈兘杞崲鎴愭垚鍛樻寚閽堛?/P>

銆銆榪欐牱涓鏉ワ紝C++鐨勬寚閽堝氨鍙樺緱寰堝按灝細鎴戜滑闇瑕佷竴縐嶆寚閽堣兘澶熸寚鍚戝悓涓綾誨瀷鐨勬暟鎹紝涓嶇榪欎釜鏁版嵁鏄櫘閫氭暟鎹紝榪樻槸鎴愬憳鏁版嵁錛涙垜浠洿闇瑕佷竴縐嶆寚閽堣兘澶熸寚鍚戝悓涓綾誨瀷鐨勫嚱鏁幫紝涓嶇榪欎釜鍑芥暟鏄潤鎬佸嚱鏁幫紝榪樻槸鎴愬憳鍑芥暟銆備絾鏄病鏈夛紝鑷沖皯浠庣幇鍦ㄧ殑C++鏍囧噯涓紝榪樻病鏈夌湅鍒般?BR>銆
娌愭灚緗戝織 C++鎸囬拡鎺㈣(涓?鎴愬憳鍑芥暟鎸囬拡

銆銆鑷粠鏈変簡綾伙紝鎴戜滑寮濮嬫寜鐓с鏁版嵁錛嬫搷浣溿鐨勬柟寮忔潵緇勭粐鏁版嵁緇撴瀯錛涜嚜浠庢湁浜嗘ā鏉匡紝鎴戜滑鍙堝紑濮嬫妸 鏁版嵁 鍜?綆楁硶 鍒嗙錛屼互渚塊噸鐢紝瀹炲湪澶熸姌鑵句漢鐨勩備絾涓嶇鎬庝箞鎶樿吘錛岀幇鍦ㄥぇ澶氭暟鍑芥暟閮戒笉鍐嶅崟韜紝閮藉珌緇欎簡綾伙紝榪涗簡鍥村煄銆傚彲鏄垜浠粛鐒墮渶瑕佽兘澶熻嚜鐢辮皟鐢ㄨ繖浜涙垚鍛樺嚱鏁般?BR>銆銆鑰冭檻涓涓媤indows涓嬬殑瀹氭椂璋冪敤銆係etTimer鍑芥暟鐨勫師鍨嬫槸榪欐牱鐨勶細

UINT_PTR SetTimer(
    HWND hWnd,
    UINT_PTR nIDEvent,
    UINT uElapse,
    TIMERPROC lpTimerFunc
);
銆銆鍏朵腑錛屽弬鏁板氨涓嶈В閲婁簡錛岃繖涓嚱鏁頒及璁″ぇ澶氭暟windows寮鍙戜漢鍛橀兘鐭ラ亾銆俵pTimerFunc鏄釜浼氳瀹氭椂璋冪敤鐨勫嚱鏁版寚閽堛傚亣濡傛垜浠笉閫氳繃WM_TIMER娑堟伅鏉ヨЕ鍙戝畾鏃跺櫒錛岃屾槸閫氳繃lpTimerFunc鏉ュ畾鏃跺伐浣滐紝閭d箞鎴戜滑灝卞彧鑳戒嬌鐢ㄦ櫘閫氬嚱鏁版垨闈欐佸嚱鏁幫紝鑰屾棤璁哄浣曢兘涓嶈兘浣跨敤鎴愬憳鍑芥暟錛屽摢鎬曢氳繃闈欐佸嚱鏁拌漿璋冧篃涓嶈銆?BR>
銆銆鍐嶈冭檻涓涓嬬嚎紼嬬殑鍒涘緩錛?BR>
uintptr_t _beginthread( 
   
void*start_address )( void * ),
   unsigned stack_size,
   
void *arglist 
);
銆銆start_address浠嶇劧鍙敮鎸佹櫘閫氬嚱鏁般備笉榪囪繖鍥炲ソ浜嗭紝瀹冨厑璁稿洖璋冨嚱鏁頒竴涓獀oid*鍙傛暟錛屽畠?yōu)畣浼歛rglist浣滀負鍙傛暟鏉ヨ皟鐢╯tart_address銆備簬鏄紝鑱槑鐨凜++紼嬪簭鍛橈紝灝卞埄鐢╝rglist浼犻抰his鎸囬拡錛屼粠鑰屽埄鐢ㄩ潤鎬佸嚱鏁版垚鍔熺殑璋冪敤鍒頒簡鎴愬憳鍑芥暟浜嗭細
class mythread
{
  
public:
    
static void doit(void* pThis)
    
{
銆銆銆銆((mythread*)pThis)
->doit();
    }

    
void doit(){}
}
;

main()
{
  
  mythread
* pmt = new mythread;
  _beginthread(
&mythread::doit, 0, (void*)pmt);
  
}

銆銆浣嗘槸鏄劇劧錛孋++紼嬪簭鍛樿偗瀹氫笉浼氬洜姝よ屾弧瓚熾傝繖閲屽ご鏈夎澶氳C++鎵瑰垽鐨勪笉瀹夊畾鍥犵礌銆傚畠浣跨敤浜咰++涓璁や負涓嶅畨鍏ㄧ殑綾誨瀷杞崲錛屼笉瀹夊叏鐨剉oid*鎸囬拡錛岀瓑絳夌瓑絳夈備絾榪欐槸緋葷粺涓篊璇█鐣欎笅鐨勮皟鐢ㄦ帴鍙o紝榪欎篃灝辮浜嗐傞偅涔堝亣濡傦紝鎴戜滑灝卞湪C++紼嬪簭涓浣曟潵璋冪敤鎴愬憳鍑芥暟鎸囬拡鍛紵
銆銆濡備笅渚嬶紝鎴戜滑鎵撶畻瀵箆ector涓殑鎵鏈夌被璋冪敤鍏舵寚瀹氱殑鎴愬憳鍑芥暟錛?/P>

#include <vector>
#include 
<algorithm>
#include 
<functional>
#include 
<iostream>
using namespace std;

class A
{
    
int value;
public:
    A(
int v){value = v;}
    
void doit(){ cout << value << endl;};
    
static void call_doit(A& rThis)
    
{
        rThis.doit();
    }

}
;


int main()
{
    vector
<A> va;
    va.push_back(A(
1));
    va.push_back(A(
2));
    va.push_back(A(
3));
    va.push_back(A(
4));
    
//鏂規(guī)硶1:
    
//for_each(va.begin(), va.end(), &A::doit); //error
    
//鏂規(guī)硶2:
    for_each(va.begin(), va.end(), &A::call_doit);
    
//鏂規(guī)硶3:
    for_each(va.begin(), va.end(), mem_fun_ref<void, A>(&A::doit));

    system(
"Pause");

    
return 0;
}

銆銆鏂規(guī)硶1錛岀紪璇戜笉鑳介氳繃銆俧or_each鍙厑璁稿叿鏈変竴涓弬鏁扮殑鍑芥暟鎸囬拡鎴栧嚱鏁板璞★紝鍝旳::doit榛樿鏈変竴涓猼his鎸囬拡鍙傛暟涔熶笉琛屻備笉鏄痜or_each娌¤冭檻鍒拌繖涓鐐癸紝鑰屾槸鏍規(guī)湰鍋氫笉鍒幫紒
銆銆鏂規(guī)硶2錛屾樉鐒舵槸鍙楀埌浜哹eginthread鐨勫惎鍙戯紝浣跨敤涓涓潤鎬佸嚱鏁版潵杞皟鐢紝鍝堝搱鎴愬姛浜嗐備絾鏄笉鐖斤紒榪欎笉鏄疌++銆?BR>銆銆鏂規(guī)硶3錛屽懠錛屽ソ涓嶅鏄撳晩錛岀粓浜庣敤mem_fun_ref鍖呰鎴愬姛浜嗘垚鍛樺嚱鏁版寚閽堛?BR>銆銆浼間箮鏂規(guī)硶3涓嶉敊錛屽張鏄被鍨嬪畨鍏ㄧ殑錛屽張鍙互閫氱敤錛嶏紞鎱㈢潃錛岄鍏堬紝瀹冨緢涓戯紝鍝湁璋冪敤鏅欳鍑芥暟鎸囬拡閭d箞婕備寒鍟婏紙瑙佹柟娉?錛夛紝鐢ㄤ簡涓澶т覆鍖呰錛屽張鏄皷鎷彿鍙堟槸鍦嗘嫭鍙鳳紝榪樺皯涓嶄簡&鍙鳳紒鍏舵錛屽畠鍙兘鍖呰涓嶈秴榪囦竴涓弬鏁扮殑鍑芥暟錛佸敖綆″畠鍦╢or_each涓鐢ㄤ簡錛屼絾鏄綘瑕佹槸鎯崇敤鍦ㄨ秴榪囦竴涓弬鏁扮殑鍦哄悎錛岄偅鍙湁涓鍙ヨ瘽錛氫笉鍙兘鐨勪換鍔°?BR>

銆銆鏄殑錛屽湪鏍囧噯C++涓紝榪欐槸涓嶅彲鑳界殑浠誨姟銆備絾浜嬫儏騫朵笉鎬繪槸鎮(zhèn)茶鐨勶紝鑷沖皯鏈夎澶氱涓夋柟搴撴彁渚涗簡瓚呰秺mem_fun鐨勫寘瑁呫傚boost::function絳夌瓑銆備絾鏄畠涔熸湁闄愬埗錛氬畠鎵鏀寔鐨勫弬鏁頒粛鐒舵槸鏈夐檺鐨勶紝鍙湁鍗佸涓紝灝界澶熶綘鐢ㄧ殑浜嗭紱鍚屾牱錛屽畠涔熸槸涓戦檵鐨勶紝姘歌繙涓嶈鎯沖畠鑳藉綆鍗曠殑鐢?amp;鏉ユ悶瀹氥?BR>
銆銆涔熻錛屼互澶卞幓緹庝附鐨勪唬浠鳳紝鏉ユ崲鍙栬川閲忎笂鐨勪繚璇侊紝榪欎篃鏄疌++瀵逛簬鍑芥暟鎸囬拡鐨勪竴縐嶆棤濂堝惂鈥︹?BR>
銆銆鏈熷緟C++0x鐗堟湰銆傚畠閫氳繃鍙彉妯℃澘鍙傛暟錛岃兘澶熻mem_fun鐨勫弬鏁拌揪鍒版棤闄愪釜鈥︹?BR>
錛嶏紞錛嶏紞錛嶏紞錛嶏紞
   BTW: C++Builder鎵╁睍浜嗕竴涓叧閿瓧 closure 錛屽厑璁告垚鍛樺嚱鏁版寚閽堝鍚屾櫘閫氬嚱鏁版寚閽堜竴鏍蜂嬌鐢ㄣ備篃璁窩++0x鑳借冭檻涓涓嬧︹?/P>

]]>
ACM瀛︿範緗戠珯 http://www.shnenglu.com/richardzeng/archive/2006/03/10/3959.htmlBeginning to 緙栫▼Beginning to 緙栫▼Fri, 10 Mar 2006 03:01:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/10/3959.htmlhttp://www.shnenglu.com/richardzeng/comments/3959.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/10/3959.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/3959.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/3959.html 
顥ヮ棩鍚屾祹澶у鐨?Online Judge - http://acm.tongji.edu.cn/
顥ヮ棩嫻欐睙澶у鐨?Online Judge - http://acm.zju.edu.cn/
顥ヮ棩鍖椾含澶у鐨?Online Judge - http://acm.pku.edu.cn/
顥ヮ棩鍚夋灄澶у鐨?Online Judge - http://acm.jlu.edu.cn/
顥ヮ棩鍥涘窛澶у鐨?Online Judge - http://cs.scu.edu.cn/acm
顥ヮ棩姹曞ご澶у鐨?Online Judge - http://acm.stu.edu.cn/
顥ヮ棩涓澶х殑 Online Judge - http://acm.ustc.edu.cn/index.php
顥ヮ棩鍝堝伐澶х殑 Online Judge - http://acm.hit.edu.cn/acm.php
顥ヮ棩瑗跨彮鐗欑殑 Universidad de Valladolid - http://acm.uva.es/
顥ヮ棩淇勭綏鏂箤鎷夊皵澶у - http://acm.timus.ru/

]]>
緇撴瀯鍖栬璁$殑鏁戝懡紼昏崏錛嶅洖璋冩満鍒? / 杞?Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=253623http://www.shnenglu.com/richardzeng/archive/2006/03/09/3929.htmlBeginning to 緙栫▼Beginning to 緙栫▼Thu, 09 Mar 2006 03:27:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/09/3929.htmlhttp://www.shnenglu.com/richardzeng/comments/3929.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/09/3929.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/3929.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/3929.html鎽樿錛氬紑鍙戞ā寮忕殑紜珛鏄蔣浠跺紑鍙戣繃紼嬩腑涓嶅彲緙哄皯鐨勪竴閮ㄥ垎錛屽氨鐩墠鏉ヨ錛岄潰鍚戣繃紼嬪拰闈㈠悜瀵硅薄鏄袱縐嶄富瑕佺殑璁捐鏂規(guī)硶錛岃櫧鐒墮潰鍚戝璞OP鏄瘮杈冩祦琛岀殑瀛楃溂錛屼絾涓嶈〃紺洪潰鍚戣繃紼嬪氨涓瀹氬ソ鏃犱綔涓猴紝姣曠珶闈㈠悜榪囩▼璁捐鏂規(guī)硶涔熸湁閫傚悎鍏跺簲鐢ㄧ殑杞歡緋葷粺錛氫互鍔熻兘鎿嶄綔涓轟富錛屾墿灞曟ц姹備笉楂橈紝鏃犻渶榪囧鑰冭檻澶嶇敤浠ュ強杞歡鐨勯氱敤鎬ц兘銆傞偅鏄笉鏄潰鍚戣繃紼嬬殑璁捐鏂規(guī)硶瀵逛簬璇稿緋葷粺妗嗘灦鎵╁睍闂灝變笣姣病鏈夊姙娉曚簡鍛紵

鎸夌収闈㈠悜榪囩▼鐨勫熀鏈師鍒欙紝鍒掑垎緋葷粺鍔熻兘妯″潡銆佹ā鍧楃粏鍒嗗埌鍑芥暟銆佺敓鎴愮郴緇熸暣浣撶殑緇撴瀯妯″瀷錛屼技涔庡湪鏁翠釜榪囩▼涓病鏈変換浣曚笢瑗垮彲浠ョ敤鏉ユ彁渚涚郴緇熸墿灞曪紝鍏跺疄瑙e喅鐨勬柟娉曡繕鏄湁鐨勶紝榪欐牴鏁戝懡紼昏崏灝辨槸鍥炶皟鏈哄埗銆?/P>

涓璋堝埌鍥炶皟鏈哄埗錛屽綋鐒跺氨灝戜笉浜嗘垜浠殑涓昏錛氱郴緇烝PI(閫氬父閮芥槸)鍜屽洖璋冨嚱鏁幫紝榪欎袱鑰呯己涓涓嶅彲銆傚叾瀹炲洖璋冪殑鍩烘湰鎬濇兂灝辨槸鐢辯郴緇熺粰鎴戜滑鎻愪緵涓浜涙帴鍙o紝涔熷氨鏄父浣跨敤鐨凙PI錛岃繖縐嶅嚱鏁板彲浠ュ皢鏌愪釜鍏朵粬鍑芥暟鐨勫湴鍧浣滀負鍏跺弬鏁頒箣涓錛岃屼笖鍙互鍒╃敤璇ュ湴鍧瀵硅繖涓嚱鏁拌繘琛岃皟鐢紝鑰岃璋冪敤鐨勫嚱鏁板氨鏄垜浠氬父鎵璇寸殑鍥炶皟鍑芥暟浜嗐?BR>涓嬮潰緇欎釜鍥炶皟鍑芥暟浣跨敤鐨勫皬渚嬪瓙錛?BR>錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
//鐩稿綋浜庢垜浠彁鍒扮殑緋葷粺API
mainFunc( void*  userFunc )//褰撶劧鍙傛暟涓嶄細榪欎箞綆鍗曪紝鍙槸妯℃嫙
{
 while (...)
 {
  printf("ok!");
                //璋冪敤鍥炶皟鍑芥暟浜?BR>  if (userFunc!=NULL) 
   userFunc();
 }
}
鍙互鐪嬪嚭MainFunc鍙互鏍規(guī)嵁鍑芥暟userFunc鐨勫湴鍧璋冪敤瀹冦?BR>錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
榪欐牱浣跨敤鑰呭彧闇瑕佸畾涔変竴涓嚱鏁幫細void myFunc()錛岀劧鍚庢寜鐓ainFunc(&myFunc)(&鍙〃紺轟紶閫掔殑鏄嚱鏁扮殑鍦板潃錛屾棤鍏蜂綋鍚箟)錛屽氨鍙互璁╂垜浠殑mainFunc鏉ヨ皟鐢╩yFunc浠庤屽疄鐜扮浉搴旂殑鍔熻兘錛岃繖鏍峰綋鐒跺彲浠ュ畬鎴愭垜浠鏈熺殑鐩殑錛嶆墿灞曠幇鏈夌郴緇熴?/P>

鍦╳indows緋葷粺涓紝鏀寔榪欑鍥炶皟鏈哄埗鐨勭郴緇烝PI涓嶅崰灝戞暟錛屽儚瀹炵幇ListControl鎺掑簭鐨凷ortItem()鍑芥暟錛岃繕鏈夋搷浣淔ont浣跨敤鐨勫嚱鏁癊numFontFamilies()閮芥湁鎻愪緵榪欑鍥炶皟鏈哄埗錛屼嬌寰楁垜浠殑鐢ㄦ埛鏈夋満浼氭坊鍔犺嚜宸辨湡鏈涚殑鍔熻兘瀹炵幇銆傚綋鐒訛紝浣跨敤鍥炶皟鍑芥暟騫朵笉鏄竴涓交鏉劇殑浜嬫儏錛屽鏋滄垜浠殑緋葷粺涓瓨鍦ㄤ簡澶ч噺鐨勫洖璋冨嚱鏁版槸寰堥毦綆$悊鐨勶紝榪欎釜灝變笌緋葷粺涓瓨鍦ㄥぇ閲忓叏灞鍙橀噺涓鏍鳳紝鍑虹幇澶氫釜鍑芥暟浜夌浉璁塊棶鍚屼竴涓彉閲忔垜浠氨寰堥毦浣跨敤綆鍗曠殑閫昏緫鏉ュ鐞嗭紝瀹規(guī)槗闄峰叆娣蜂貢錛屽洜姝わ紝灝界鍥炶皟鏈哄埗鍙互鍦ㄦ煇縐嶇▼搴︿笂杈懼埌鎴戜滑鐨勭洰鐨勶紝浣嗗垏涓嶅彲涔卞姞浣跨敤錛屼笉鐒跺悗鏋滃緢闅鵑鏂欍?/P>

褰撶劧鑷充簬璇︾粏鐨勫洖璋冨嚱鏁板疄鐜幫紝榪橀渶瑕佸ぇ瀹舵綔蹇冪爺絀訛紝榪欓噷鎴戝彧鏄葷粨涓涓嬶細
1 鍥炶皟鍑芥暟鏄敱寮鍙戣呮寜鐓т竴瀹氱殑鍘熷瀷榪涜瀹氫箟鐨勫嚱鏁?姣忎釜鍥炶皟鍑芥暟閮藉繀欏婚伒寰繖涓師鍨嬫潵璁捐)

渚嬪錛?BR>錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
BOOL CALLBACK DialogProc(
    
     HWND hwndDlg, // handle of dialog box
     UINT uMsg, // message
     WPARAM wParam, // first message parameter
     LPARAM lParam // second message parameter
     );
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
璇存槑錛?BR>鍥炶皟鍑芥暟蹇呴』鏈夊叧閿瘝 CALLBACK
鍥炶皟鍑芥暟鏈韓蹇呴』鏄叏灞鍑芥暟鎴栬呴潤鎬佸嚱鏁幫紝涓嶅彲瀹氫箟涓烘煇涓壒瀹氱殑綾葷殑鎴愬憳鍑芥暟

2 鍥炶皟鍑芥暟騫朵笉鐢卞紑鍙戣呯洿鎺ヨ皟鐢ㄦ墽琛?鍙槸浣跨敤緋葷粺鎺ュ彛API鍑芥暟浣滀負璧風偣)
3 鍥炶皟鍑芥暟閫氬父浣滀負鍙傛暟浼犻掔粰緋葷粺API錛岀敱璇PI鏉ヨ皟鐢?BR>4 鍥炶皟鍑芥暟鍙兘琚郴緇烝PI璋冪敤涓嬈★紝涔熷彲鑳借寰幆璋冪敤澶氭(SortItem灝辨槸鑷皟鐢?

鏈鍚庤鍙ラ澶栬瘽錛屽叾瀹瀢indows緋葷粺涓繕鏈夊彟涓縐嶆満鍒訛紞娑堟伅鏈哄埗錛屼篃鏄竴涓瘮杈冧笉閿欑殑宸ュ叿錛岃兘澶熶負寰堝瀹為檯鐨勯棶棰樻彁渚涜В鍐蟲柟娉曪紝榪欎釜浠ュ悗鍐嶆葷粨浜嗐?/P>

]]>
浜斿ぇ鍐呭瓨鍒嗗尯 /http://blog.csdn.net/welcome_ck/archive/2004/12/24/227961.aspxhttp://www.shnenglu.com/richardzeng/archive/2006/03/09/3928.htmlBeginning to 緙栫▼Beginning to 緙栫▼Thu, 09 Mar 2006 03:20:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/09/3928.htmlhttp://www.shnenglu.com/richardzeng/comments/3928.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/09/3928.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/3928.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/3928.html
    鍦–++涓紝鍐呭瓨鍒嗘垚5涓尯錛屼粬浠垎鍒槸鍫嗐佹爤銆佽嚜鐢卞瓨鍌ㄥ尯銆佸叏灞/闈欐佸瓨鍌ㄥ尯鍜屽父閲忓瓨鍌ㄥ尯銆?BR>    鏍堬紝灝辨槸閭d簺鐢辯紪璇戝櫒鍦ㄩ渶瑕佺殑鏃跺欏垎閰嶏紝鍦ㄤ笉闇瑕佺殑鏃跺欒嚜鍔ㄦ竻妤氱殑鍙橀噺鐨勫瓨鍌ㄥ尯銆傞噷闈㈢殑鍙橀噺閫氬父鏄眬閮ㄥ彉閲忋佸嚱鏁板弬鏁扮瓑銆?BR>    鍫嗭紝灝辨槸閭d簺鐢眓ew鍒嗛厤鐨勫唴瀛樺潡錛屼粬浠殑閲婃斁緙栬瘧鍣ㄤ笉鍘葷錛岀敱鎴戜滑鐨勫簲鐢ㄧ▼搴忓幓鎺у埗錛屼竴鑸竴涓猲ew灝辮瀵瑰簲涓涓猟elete銆傚鏋滅▼搴忓憳娌℃湁閲婃斁鎺夛紝閭d箞鍦ㄧ▼搴忕粨鏉熷悗錛屾搷浣滅郴緇熶細鑷姩鍥炴敹銆?BR>    鑷敱瀛樺偍鍖猴紝灝辨槸閭d簺鐢眒alloc絳夊垎閰嶇殑鍐呭瓨鍧楋紝浠栧拰鍫嗘槸鍗佸垎鐩鎬技鐨勶紝涓嶈繃瀹冩槸鐢╢ree鏉ョ粨鏉熻嚜宸辯殑鐢熷懡鐨勩?BR>    鍏ㄥ眬/闈欐佸瓨鍌ㄥ尯錛屽叏灞鍙橀噺鍜岄潤鎬佸彉閲忚鍒嗛厤鍒板悓涓鍧楀唴瀛樹腑錛屽湪浠ュ墠鐨凜璇█涓紝鍏ㄥ眬鍙橀噺鍙堝垎涓哄垵濮嬪寲鐨勫拰鏈垵濮嬪寲鐨勶紝鍦–++閲岄潰娌℃湁榪欎釜鍖哄垎浜嗭紝浠栦滑鍏卞悓鍗犵敤鍚屼竴鍧楀唴瀛樺尯銆?BR>    甯擱噺瀛樺偍鍖猴紝榪欐槸涓鍧楁瘮杈冪壒孌婄殑瀛樺偍鍖猴紝浠栦滑閲岄潰瀛樻斁鐨勬槸甯擱噺錛屼笉鍏佽淇敼錛堝綋鐒訛紝浣犺閫氳繃闈炴褰撴墜孌典篃鍙互淇敼錛岃屼笖鏂規(guī)硶寰堝錛?BR>鏄庣‘鍖哄垎鍫嗕笌鏍?BR>    鍦╞bs涓婏紝鍫嗕笌鏍堢殑鍖哄垎闂錛屼技涔庢槸涓涓案鎭掔殑璇濋錛岀敱姝ゅ彲瑙侊紝鍒濆鑰呭姝ゅ線寰鏄販娣嗕笉娓呯殑錛屾墍浠ユ垜鍐沖畾鎷夸粬絎竴涓紑鍒銆?BR>    棣栧厛錛屾垜浠婦涓涓緥瀛愶細
    void f() { int* p=new int[5]; }
    榪欐潯鐭煭鐨勪竴鍙ヨ瘽灝卞寘鍚簡鍫嗕笌鏍堬紝鐪嬪埌new錛屾垜浠鍏堝氨搴旇鎯沖埌錛屾垜浠垎閰嶄簡涓鍧楀爢鍐呭瓨錛岄偅涔堟寚閽坧鍛紵浠栧垎閰嶇殑鏄竴鍧楁爤鍐呭瓨錛屾墍浠ヨ繖鍙ヨ瘽鐨勬剰鎬濆氨鏄細鍦ㄦ爤鍐呭瓨涓瓨鏀句簡涓涓寚鍚戜竴鍧楀爢鍐呭瓨鐨勬寚閽坧銆傚湪紼嬪簭浼氬厛紜畾鍦ㄥ爢涓垎閰嶅唴瀛樼殑澶у皬錛岀劧鍚庤皟鐢╫perator new鍒嗛厤鍐呭瓨錛岀劧鍚庤繑鍥炶繖鍧楀唴瀛樼殑棣栧湴鍧錛屾斁鍏ユ爤涓紝浠栧湪VC6涓嬬殑姹囩紪浠g爜濡備笅錛?BR>    00401028   push        14h
    0040102A   call        operator new (00401060)
    0040102F   add         esp,4
    00401032   mov         dword ptr [ebp-8],eax
    00401035   mov         eax,dword ptr [ebp-8]
    00401038   mov         dword ptr [ebp-4],eax
    榪欓噷錛屾垜浠負浜嗙畝鍗曞茍娌℃湁閲婃斁鍐呭瓨錛岄偅涔堣鎬庝箞鍘婚噴鏀懼憿錛熸槸delete p涔堬紵婢籌紝閿欎簡錛屽簲璇ユ槸delete []p錛岃繖鏄負浜嗗憡璇夌紪璇戝櫒錛氭垜鍒犻櫎鐨勬槸涓涓暟緇勶紝VC6灝變細鏍規(guī)嵁鐩稿簲鐨凜ookie淇℃伅鍘昏繘琛岄噴鏀懼唴瀛樼殑宸ヤ綔銆?BR>    濂戒簡錛屾垜浠洖鍒版垜浠殑涓婚錛氬爢鍜屾爤絀剁珶鏈変粈涔堝尯鍒紵
    涓昏鐨勫尯鍒敱浠ヤ笅鍑犵偣錛?BR>    1銆佺鐞嗘柟寮忎笉鍚岋紱
    2銆佺┖闂村ぇ灝忎笉鍚岋紱
    3銆佽兘鍚︿駭鐢熺鐗囦笉鍚岋紱
    4銆佺敓闀挎柟鍚戜笉鍚岋紱
    5銆佸垎閰嶆柟寮忎笉鍚岋紱
    6銆佸垎閰嶆晥鐜囦笉鍚岋紱
    綆$悊鏂瑰紡錛氬浜庢爤鏉ヨ錛屾槸鐢辯紪璇戝櫒鑷姩綆$悊錛屾棤闇鎴戜滑鎵嬪伐鎺у埗錛涘浜庡爢鏉ヨ錛岄噴鏀懼伐浣滅敱紼嬪簭鍛樻帶鍒訛紝瀹規(guī)槗浜х敓memory leak銆?BR>    絀洪棿澶у皬錛氫竴鑸潵璁插湪32浣嶇郴緇熶笅錛屽爢鍐呭瓨鍙互杈懼埌4G鐨勭┖闂達紝浠庤繖涓搴︽潵鐪嬪爢鍐呭瓨鍑犱箮鏄病鏈変粈涔堥檺鍒剁殑銆備絾鏄浜庢爤鏉ヨ錛屼竴鑸兘鏄湁涓瀹氱殑絀洪棿澶у皬鐨勶紝渚嬪錛屽湪VC6涓嬮潰錛岄粯璁ょ殑鏍堢┖闂村ぇ灝忔槸1M錛堝ソ鍍忔槸錛岃涓嶆竻妤氫簡錛夈傚綋鐒訛紝鎴戜滑鍙互淇敼錛?nbsp;  
    鎵撳紑宸ョ▼錛屼緷嬈℃搷浣滆彍鍗曞涓嬶細Project->Setting->Link錛屽湪Category 涓変腑Output錛岀劧鍚庡湪Reserve涓瀹氬爢鏍堢殑鏈澶у煎拰commit銆?BR>娉ㄦ剰錛歳eserve鏈灝忓間負4Byte錛沜ommit鏄繚鐣欏湪铏氭嫙鍐呭瓨鐨勯〉鏂囦歡閲岄潰錛屽畠璁劇疆鐨勮緝澶т細浣挎爤寮杈熻緝澶х殑鍊鹼紝鍙兘澧炲姞鍐呭瓨鐨勫紑閿鍜屽惎鍔ㄦ椂闂淬?BR>    紕庣墖闂錛氬浜庡爢鏉ヨ錛岄綣佺殑new/delete鍔垮繀浼氶犳垚鍐呭瓨絀洪棿鐨勪笉榪炵畫錛屼粠鑰岄犳垚澶ч噺鐨勭鐗囷紝浣跨▼搴忔晥鐜囬檷浣庛傚浜庢爤鏉ヨ錛屽垯涓嶄細瀛樺湪榪欎釜闂錛屽洜涓烘爤鏄厛榪涘悗鍑虹殑闃熷垪錛屼粬浠槸濡傛鐨勪竴涓瀵瑰簲錛屼互鑷充簬姘歌繙閮戒笉鍙兘鏈変竴涓唴瀛樺潡浠庢爤涓棿寮瑰嚭錛屽湪浠栧脊鍑轟箣鍓嶏紝鍦ㄤ粬涓婇潰鐨勫悗榪涚殑鏍堝唴瀹瑰凡緇忚寮瑰嚭錛岃緇嗙殑鍙互鍙傝冩暟鎹粨鏋勶紝榪欓噷鎴戜滑灝變笉鍐嶄竴涓璁ㄨ浜嗐?BR>    鐢熼暱鏂瑰悜錛氬浜庡爢鏉ヨ錛岀敓闀挎柟鍚戞槸鍚戜笂鐨勶紝涔熷氨鏄悜鐫鍐呭瓨鍦板潃澧炲姞鐨勬柟鍚戯紱瀵逛簬鏍堟潵璁詫紝瀹冪殑鐢熼暱鏂瑰悜鏄悜涓嬬殑錛屾槸鍚戠潃鍐呭瓨鍦板潃鍑忓皬鐨勬柟鍚戝闀褲?BR>    鍒嗛厤鏂瑰紡錛氬爢閮芥槸鍔ㄦ佸垎閰嶇殑錛屾病鏈夐潤鎬佸垎閰嶇殑鍫嗐傛爤鏈?縐嶅垎閰嶆柟寮忥細闈欐佸垎閰嶅拰鍔ㄦ佸垎閰嶃傞潤鎬佸垎閰嶆槸緙栬瘧鍣ㄥ畬鎴愮殑錛屾瘮濡傚眬閮ㄥ彉閲忕殑鍒嗛厤銆傚姩鎬佸垎閰嶇敱alloca鍑芥暟榪涜鍒嗛厤錛屼絾鏄爤鐨勫姩鎬佸垎閰嶅拰鍫嗘槸涓嶅悓鐨勶紝浠栫殑鍔ㄦ佸垎閰嶆槸鐢辯紪璇戝櫒榪涜閲婃斁錛屾棤闇鎴戜滑鎵嬪伐瀹炵幇銆?BR>    鍒嗛厤鏁堢巼錛氭爤鏄満鍣ㄧ郴緇熸彁渚涚殑鏁版嵁緇撴瀯錛岃綆楁満浼氬湪搴曞眰瀵規(guī)爤鎻愪緵鏀寔錛氬垎閰嶄笓闂ㄧ殑瀵勫瓨鍣ㄥ瓨鏀炬爤鐨勫湴鍧錛屽帇鏍堝嚭鏍堥兘鏈変笓闂ㄧ殑鎸囦護鎵ц錛岃繖灝卞喅瀹氫簡鏍堢殑鏁堢巼姣旇緝楂樸傚爢鍒欐槸C/C++鍑芥暟搴撴彁渚涚殑錛屽畠鐨勬満鍒舵槸寰堝鏉傜殑錛屼緥濡備負浜嗗垎閰嶄竴鍧楀唴瀛橈紝搴撳嚱鏁頒細鎸夌収涓瀹氱殑綆楁硶錛堝叿浣撶殑綆楁硶鍙互鍙傝冩暟鎹粨鏋?鎿嶄綔緋葷粺錛夊湪鍫嗗唴瀛樹腑鎼滅儲鍙敤鐨勮凍澶熷ぇ灝忕殑絀洪棿錛屽鏋滄病鏈夎凍澶熷ぇ灝忕殑絀洪棿錛堝彲鑳芥槸鐢變簬鍐呭瓨紕庣墖澶錛夛紝灝辨湁鍙兘璋冪敤緋葷粺鍔熻兘鍘誨鍔犵▼搴忔暟鎹鐨勫唴瀛樼┖闂達紝榪欐牱灝辨湁鏈轟細鍒嗗埌瓚沖澶у皬鐨勫唴瀛橈紝鐒跺悗榪涜榪斿洖銆傛樉鐒訛紝鍫嗙殑鏁堢巼姣旀爤瑕佷綆寰楀銆?BR>    浠庤繖閲屾垜浠彲浠ョ湅鍒幫紝鍫嗗拰鏍堢浉姣旓紝鐢變簬澶ч噺new/delete鐨勪嬌鐢紝瀹規(guī)槗閫犳垚澶ч噺鐨勫唴瀛樼鐗囷紱鐢變簬娌℃湁涓撻棬鐨勭郴緇熸敮鎸侊紝鏁堢巼寰堜綆錛涚敱浜庡彲鑳藉紩鍙戠敤鎴鋒佸拰鏍稿績鎬佺殑鍒囨崲錛屽唴瀛樼殑鐢寵錛屼唬浠峰彉寰楁洿鍔犳槀璐點傛墍浠ユ爤鍦ㄧ▼搴忎腑鏄簲鐢ㄦ渶騫挎硾鐨勶紝灝辯畻鏄嚱鏁扮殑璋冪敤涔熷埄鐢ㄦ爤鍘誨畬鎴愶紝鍑芥暟璋冪敤榪囩▼涓殑鍙傛暟錛岃繑鍥炲湴鍧錛孍BP鍜屽眬閮ㄥ彉閲忛兘閲囩敤鏍堢殑鏂瑰紡瀛樻斁銆傛墍浠ワ紝鎴戜滑鎺ㄨ崘澶у灝介噺鐢ㄦ爤錛岃屼笉鏄敤鍫嗐?BR>    铏界劧鏍堟湁濡傛浼楀鐨勫ソ澶勶紝浣嗘槸鐢變簬鍜屽爢鐩告瘮涓嶆槸閭d箞鐏墊椿錛屾湁鏃跺欏垎閰嶅ぇ閲忕殑鍐呭瓨絀洪棿錛岃繕鏄敤鍫嗗ソ涓浜涖?BR>    鏃犺鏄爢榪樻槸鏍堬紝閮借闃叉瓚婄晫鐜拌薄鐨勫彂鐢燂紙闄ら潪浣犳槸鏁呮剰浣垮叾瓚婄晫錛夛紝鍥犱負瓚婄晫鐨勭粨鏋滆涔堟槸紼嬪簭宕╂簝錛岃涔堟槸鎽ф瘉紼嬪簭鐨勫爢銆佹爤緇撴瀯錛屼駭鐢熶互鎯充笉鍒扮殑緇撴灉,灝辯畻鏄湪浣犵殑紼嬪簭榪愯榪囩▼涓紝娌℃湁鍙戠敓涓婇潰鐨勯棶棰橈紝浣犺繕鏄灝忓績錛岃涓嶅畾浠涔堟椂鍊欏氨宕╂帀錛岄偅鏃跺檇ebug鍙槸鐩稿綋鍥伴毦鐨勶細錛?BR>    瀵逛簡錛岃繕鏈変竴浠朵簨錛屽鏋滄湁浜烘妸鍫嗘爤鍚堣搗鏉ヨ錛岄偅瀹冪殑鎰忔濇槸鏍堬紝鍙笉鏄爢錛屽懙鍛碉紝娓呮浜嗭紵
static鐢ㄦ潵鎺у埗鍙橀噺鐨勫瓨鍌ㄦ柟寮忓拰鍙鎬?BR>       鍑芥暟鍐呴儴瀹氫箟鐨勫彉閲忥紝鍦ㄧ▼搴忔墽琛屽埌瀹冪殑瀹氫箟澶勬椂錛岀紪璇戝櫒涓哄畠鍦ㄦ爤涓婂垎閰嶇┖闂達紝鍑芥暟鍦ㄦ爤涓婂垎閰嶇殑絀洪棿鍦ㄦ鍑芥暟鎵ц緇撴潫鏃朵細閲婃斁鎺夛紝榪欐牱灝變駭鐢熶簡涓涓棶棰? 濡傛灉鎯沖皢鍑芥暟涓鍙橀噺鐨勫間繚瀛樿嚦涓嬩竴嬈¤皟鐢ㄦ椂錛屽浣曞疄鐜幫紵 鏈瀹規(guī)槗鎯沖埌鐨勬柟娉曟槸瀹氫箟涓涓叏灞鐨勫彉閲忥紝浣嗗畾涔変負涓涓叏灞鍙橀噺鏈夎澶氱己鐐癸紝鏈鏄庢樉鐨勭己鐐規(guī)槸鐮村潖浜嗘鍙橀噺鐨勮闂寖鍥達紙浣垮緱鍦ㄦ鍑芥暟涓畾涔夌殑鍙橀噺錛屼笉浠呬粎鍙楁鍑芥暟鎺у埗錛夈?/P>

       闇瑕佷竴涓暟鎹璞′負鏁翠釜綾昏岄潪鏌愪釜瀵硅薄鏈嶅姟,鍚屾椂鍙堝姏姹備笉鐮村潖綾葷殑灝佽鎬?鍗寵姹傛鎴愬憳闅愯棌鍦ㄧ被鐨勫唴閮紝瀵瑰涓嶅彲瑙併?/P>

       static鐨勫唴閮ㄦ満鍒訛細
       闈欐佹暟鎹垚鍛樿鍦ㄧ▼搴忎竴寮濮嬭繍琛屾椂灝卞繀欏誨瓨鍦ㄣ傚洜涓哄嚱鏁板湪紼嬪簭榪愯涓璋冪敤錛屾墍浠ラ潤鎬佹暟鎹垚鍛樹笉鑳藉湪浠諱綍鍑芥暟鍐呭垎閰嶇┖闂村拰鍒濆鍖栥?BR>       榪欐牱錛屽畠鐨勭┖闂村垎閰嶆湁涓変釜鍙兘鐨勫湴鏂癸紝涓鏄綔涓虹被鐨勫閮ㄦ帴鍙g殑澶存枃浠訛紝閭i噷鏈夌被澹版槑錛涗簩鏄被瀹氫箟鐨勫唴閮ㄥ疄鐜幫紝閭i噷鏈夌被鐨勬垚鍛樺嚱鏁板畾涔夛紱涓夋槸搴旂敤紼嬪簭鐨刴ain錛堬級鍑芥暟鍓嶇殑鍏ㄥ眬鏁版嵁澹版槑鍜屽畾涔夊銆?BR>      闈欐佹暟鎹垚鍛樿瀹為檯鍦板垎閰嶇┖闂達紝鏁呬笉鑳藉湪綾葷殑澹版槑涓畾涔夛紙鍙兘澹版槑鏁版嵁鎴愬憳錛夈傜被澹版槑鍙0鏄庝竴涓被鐨勨滃昂瀵稿拰瑙勬牸鈥濓紝騫朵笉榪涜瀹為檯鐨勫唴瀛樺垎閰嶏紝鎵浠ュ湪綾誨0鏄庝腑鍐欐垚瀹氫箟鏄敊璇殑銆傚畠涔熶笉鑳藉湪澶存枃浠朵腑綾誨0鏄庣殑澶栭儴瀹氫箟錛屽洜涓洪偅浼氶犳垚鍦ㄥ涓嬌鐢ㄨ綾葷殑婧愭枃浠朵腑錛屽鍏墮噸澶嶅畾涔夈?BR>      static琚紩鍏ヤ互鍛婄煡緙栬瘧鍣紝灝嗗彉閲忓瓨鍌ㄥ湪紼嬪簭鐨勯潤鎬佸瓨鍌ㄥ尯鑰岄潪鏍堜笂絀洪棿錛岄潤鎬?BR>鏁版嵁鎴愬憳鎸夊畾涔夊嚭鐜扮殑鍏堝悗欏哄簭渚濇鍒濆鍖栵紝娉ㄦ剰闈欐佹垚鍛樺祵濂楁椂錛岃淇濊瘉鎵宓屽鐨勬垚鍛樺凡緇忓垵濮嬪寲浜嗐傛秷闄ゆ椂鐨勯『搴忔槸鍒濆鍖栫殑鍙嶉『搴忋?/P>

       static鐨勪紭鍔匡細
       鍙互鑺傜渷鍐呭瓨錛屽洜涓哄畠鏄墍鏈夊璞℃墍鍏湁鐨勶紝鍥犳錛屽澶氫釜瀵硅薄鏉ヨ錛岄潤鎬佹暟鎹垚鍛樺彧瀛樺偍涓澶勶紝渚涙墍鏈夊璞″叡鐢ㄣ傞潤鎬佹暟鎹垚鍛樼殑鍊煎姣忎釜瀵硅薄閮芥槸涓鏍鳳紝浣嗗畠鐨勫兼槸鍙互鏇存柊鐨勩傚彧瑕佸闈欐佹暟鎹垚鍛樼殑鍊兼洿鏂頒竴嬈★紝淇濊瘉鎵鏈夊璞″瓨鍙栨洿鏂板悗鐨勭浉鍚岀殑鍊鹼紝榪欐牱鍙互鎻愰珮鏃墮棿鏁堢巼銆?/P>

        寮曠敤闈欐佹暟鎹垚鍛樻椂錛岄噰鐢ㄥ涓嬫牸寮忥細
         <綾誨悕>::<闈欐佹垚鍛樺悕>
    濡傛灉闈欐佹暟鎹垚鍛樼殑璁塊棶鏉冮檺鍏佽鐨勮瘽(鍗硃ublic鐨勬垚鍛?錛屽彲鍦ㄧ▼搴忎腑錛屾寜涓婅堪鏍煎紡
鏉ュ紩鐢ㄩ潤鎬佹暟鎹垚鍛樸?/P>

       PS:
      (1)綾葷殑闈欐佹垚鍛樺嚱鏁版槸灞炰簬鏁翠釜綾昏岄潪綾葷殑瀵硅薄錛屾墍浠ュ畠娌℃湁this鎸囬拡錛岃繖灝卞鑷?BR>浜嗗畠浠呰兘璁塊棶綾葷殑闈欐佹暟鎹拰闈欐佹垚鍛樺嚱鏁般?BR>      (2)涓嶈兘灝嗛潤鎬佹垚鍛樺嚱鏁板畾涔変負铏氬嚱鏁般?BR>      (3)鐢變簬闈欐佹垚鍛樺0鏄庝簬綾諱腑錛屾搷浣滀簬鍏跺錛屾墍浠ュ鍏跺彇鍦板潃鎿嶄綔錛屽氨澶氬皯鏈変簺鐗規(guī)畩
錛屽彉閲忓湴鍧鏄寚鍚戝叾鏁版嵁綾誨瀷鐨勬寚閽?錛屽嚱鏁板湴鍧綾誨瀷鏄竴涓渘onmember鍑芥暟鎸囬拡鈥濄?/P>

      (4)鐢變簬闈欐佹垚鍛樺嚱鏁版病鏈塼his鎸囬拡錛屾墍浠ュ氨宸笉澶氱瓑鍚屼簬nonmember鍑芥暟錛岀粨鏋滃氨
浜х敓浜嗕竴涓剰鎯充笉鍒扮殑濂藉錛氭垚涓轟竴涓猚allback鍑芥暟錛屼嬌寰楁垜浠緱浠ュ皢C++鍜孋-based X W
indow緋葷粺緇撳悎錛屽悓鏃朵篃鎴愬姛鐨勫簲鐢ㄤ簬綰跨▼鍑芥暟韜笂銆?BR>      (5)static騫舵病鏈夊鍔犵▼搴忕殑鏃剁┖寮閿錛岀浉鍙嶅ス榪樼緝鐭簡瀛愮被瀵圭埗綾婚潤鎬佹垚鍛樼殑璁塊棶
鏃墮棿錛岃妭鐪佷簡瀛愮被鐨勫唴瀛樼┖闂淬?BR>      (6)闈欐佹暟鎹垚鍛樺湪<瀹氫箟鎴栬鏄?gt;鏃跺墠闈㈠姞鍏抽敭瀛梥tatic銆?BR>      (7)闈欐佹暟鎹垚鍛樻槸闈欐佸瓨鍌ㄧ殑錛屾墍浠ュ繀欏誨瀹冭繘琛屽垵濮嬪寲銆?BR>      (8)闈欐佹垚鍛樺垵濮嬪寲涓庝竴鑸暟鎹垚鍛樺垵濮嬪寲涓嶅悓:
      鍒濆鍖栧湪綾諱綋澶栬繘琛岋紝鑰屽墠闈笉鍔爏tatic錛屼互鍏嶄笌涓鑸潤鎬佸彉閲忔垨瀵硅薄鐩告販娣嗭紱
      鍒濆鍖栨椂涓嶅姞璇ユ垚鍛樼殑璁塊棶鏉冮檺鎺у埗絎rivate錛宲ublic絳夛紱
           鍒濆鍖栨椂浣跨敤浣滅敤鍩熻繍綆楃鏉ユ爣鏄庡畠鎵灞炵被錛?BR>           鎵浠ユ垜浠緱鍑洪潤鎬佹暟鎹垚鍛樺垵濮嬪寲鐨勬牸寮忥細
         <鏁版嵁綾誨瀷><綾誨悕>::<闈欐佹暟鎹垚鍛樺悕>=<鍊?gt;
      (9)涓轟簡闃叉鐖剁被鐨勫獎鍝嶏紝鍙互鍦ㄥ瓙綾誨畾涔変竴涓笌鐖剁被鐩稿悓鐨勯潤鎬佸彉閲忥紝浠ュ睆钄界埗綾葷殑褰卞搷銆傝繖閲屾湁涓鐐歸渶瑕佹敞鎰忥細鎴戜滑璇撮潤鎬佹垚鍛樹負鐖剁被鍜屽瓙綾誨叡浜紝浣嗘垜浠湁閲嶅瀹氫箟浜嗛潤鎬佹垚鍛橈紝榪欎細涓嶄細寮曡搗閿欒鍛紵涓嶄細錛屾垜浠殑緙栬瘧鍣ㄩ噰鐢ㄤ簡涓縐嶇粷濡欑殑鎵嬫硶錛歯ame-mangling 鐢ㄤ互鐢熸垚鍞竴鐨勬爣蹇椼?BR>



]]>
鍏充簬C++涓瀯閫犲嚱鏁扮殑璇存槑 /杞瓩閼玍C++http://www.shnenglu.com/richardzeng/archive/2006/03/09/3925.htmlBeginning to 緙栫▼Beginning to 緙栫▼Thu, 09 Mar 2006 02:59:00 GMThttp://www.shnenglu.com/richardzeng/archive/2006/03/09/3925.htmlhttp://www.shnenglu.com/richardzeng/comments/3925.htmlhttp://www.shnenglu.com/richardzeng/archive/2006/03/09/3925.html#Feedback0http://www.shnenglu.com/richardzeng/comments/commentRss/3925.htmlhttp://www.shnenglu.com/richardzeng/services/trackbacks/3925.html鍦ㄥ浗鍐呯殑C++鍥句功涓紝鍏充簬鏋勯犲嚱鏁扮殑璇存槑錛岃涔堟槸閿欒鐨勶紝瑕佷箞娌℃湁鐪熸璇存竻妤氭瀯閫犲嚱鏁扮殑浣滅敤錛屽洜姝ゅ湪鎴戠殑瑙嗛涓紝瀵規(guī)瀯閫犲嚱鏁扮殑璁茶В錛屼篃鏈変竴閮ㄥ垎閿欒鐨勫彊榪般傚浜嶤++鏋勯犲嚱鏁頒竴浜涢敊璇璇嗙殑浼犳挱錛屾垜涔熺浉褰撲簬璧蜂簡鎺ㄦ嘗鍔╂緶鐨勪綔鐢紝鍦ㄦ鍙嶇渷涓涓嬶紝騫剁粰鍑烘紜殑鍙欒堪銆?/P>

錛堟劅璋㈣タ瀹夎蔣浠跺洯鐨勭帇鍏堢敓涓烘垜鎸囧嚭閿欒錛屾劅璋㈢綉鍙媌acker甯姪鎴戞壘鍑烘紜殑絳旀銆傦級

鍦ㄥ厜鐩榁C02涓紝鍦ㄤ粙緇嶆瀯閫犲嚱鏁版椂錛屾垜璇達細鈥滄瀯閫犲嚱鏁版渶閲嶈鐨勪綔鐢ㄦ槸鍒涘緩瀵硅薄鏈韓錛屽璞″唴瀛樼殑鍒嗛厤鐢辨瀯閫犲嚱鏁版潵瀹屾垚鐨勨濓紝榪欏彞璇濇槸閿欑殑錛屽璞″唴瀛樼殑鍒嗛厤鍜屾瀯閫犲嚱鏁版病鏈夊叧緋伙紝瀵硅薄鍐呭瓨鐨勫垎閰嶆槸鐢辯紪璇戝櫒鏉ュ畬鎴愮殑錛屾瀯閫犲嚱鏁扮殑浣滅敤鏄瀵硅薄鏈韓鍋氬垵濮嬪寲宸ヤ綔錛屼篃灝辨槸緇欑敤鎴鋒彁渚涘垵濮嬪寲綾諱腑鎴愬憳鍙橀噺鐨勪竴縐嶆柟寮忥紝鍦ㄧ被瀵硅薄鏈夎櫄琛ㄧ殑鎯呭喌涓嬶紝鏋勯犲嚱鏁拌繕瀵硅櫄琛ㄨ繘琛屽垵濮嬪寲銆?/P>

鍙﹀錛屾垜璇達細鈥淐++鍙堣瀹氾紝濡傛灉涓涓被娌℃湁鎻愪緵浠諱綍鐨勬瀯閫犲嚱鏁幫紝鍒機++鎻愪緵涓涓粯璁ょ殑鏋勯犲嚱鏁幫紙鐢盋++緙栬瘧鍣ㄦ彁渚涳級鈥濓紝榪欏彞璇濅篃鏄敊璇殑錛屾紜殑鏄細

濡傛灉涓涓被涓病鏈夊畾涔変換浣曠殑鏋勯犲嚱鏁幫紝閭d箞緙栬瘧鍣ㄥ彧鏈夊湪浠ヤ笅涓夌鎯呭喌錛屾墠浼氭彁渚涢粯璁ょ殑鏋勯犲嚱鏁幫細
1銆佸鏋滅被鏈夎櫄鎷熸垚鍛樺嚱鏁版垨鑰呰櫄鎷熺戶鎵跨埗綾伙紙鍗蟲湁铏氭嫙鍩虹被錛夋椂錛?BR>2銆佸鏋滅被鐨勫熀綾繪湁鏋勯犲嚱鏁幫紙鍙互鏄敤鎴峰畾涔夌殑鏋勯犲嚱鏁幫紝鎴栫紪璇戝櫒鎻愪緵鐨勯粯璁ゆ瀯閫犲嚱鏁幫級錛?BR>3銆佸湪綾諱腑鐨勬墍鏈夐潪闈欐佺殑瀵硅薄鏁版嵁鎴愬憳錛屽畠浠搴旂殑綾諱腑鏈夋瀯閫犲嚱鏁幫紙鍙互鏄敤鎴峰畾涔夌殑鏋勯犲嚱鏁幫紝鎴栫紪璇戝櫒鎻愪緵鐨勯粯璁ゆ瀯閫犲嚱鏁幫級銆?/P>

]]>
C++鐨勫鎬佹у疄鐜版満鍒跺墫鏋?/杞瓩閼?/title><link>http://www.shnenglu.com/richardzeng/archive/2006/03/09/3924.html</link><dc:creator>Beginning to 緙栫▼</dc:creator><author>Beginning to 緙栫▼</author><pubDate>Thu, 09 Mar 2006 02:56:00 GMT</pubDate><guid>http://www.shnenglu.com/richardzeng/archive/2006/03/09/3924.html</guid><wfw:comment>http://www.shnenglu.com/richardzeng/comments/3924.html</wfw:comment><comments>http://www.shnenglu.com/richardzeng/archive/2006/03/09/3924.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/richardzeng/comments/commentRss/3924.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/richardzeng/services/trackbacks/3924.html</trackback:ping><description><![CDATA[<BR> <P align=center>  <P> <P align=center>鈥曗曞嵆VC++瑙嗛絎笁璇総his鎸囬拡璇︾粏璇存槑<BR> <P> <P> <P align=center>浣滆咃細瀛欓懌 鏃墮棿錛??xml:namespace prefix = st1 /><st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="12" Month="1" Year="2006">2006騫?鏈?2鏃?/st1:chsdate>鏄熸湡鍥?BR> <P> <P> <P>瑕佹洿濂藉湴鐞嗚ВC++鐨勫鎬佹э紝鎴戜滑闇瑕佸紕娓呮鍑芥暟瑕嗙洊鐨勮皟鐢ㄦ満鍒訛紝鍥犳錛岄鍏堟垜浠粙緇嶄竴涓嬪嚱鏁扮殑瑕嗙洊銆?/P> <H1>1.   鍑芥暟鐨勮鐩?/H1> <P>鎴戜滑鍏堢湅涓涓緥瀛愶細</P> <DIV> <P align=center><FONT size=2>渚?FONT face=Arial>1- 1</FONT></FONT></P></DIV> <P>#include <iostream.h></P> <P>class animal</P> <P>{</P> <P>public:</P> <P>       void sleep()</P> <P>       {</P> <P>              cout<<"animal sleep"<<endl;</P> <P>       }</P> <P>       <B>void breathe()<BR> <P></B> <P> <P><B>       {<BR> <P></B> <P> <P><B>              cout<<"animal breathe"<<endl;<BR> <P></B> <P> <P><B>       }<BR> <P></B> <P> <P>};</P> <P>class fish:public animal</P> <P>{</P> <P>public:</P> <P>       <B>void breathe()<BR> <P></B> <P> <P><B>       {<BR> <P></B> <P> <P><B>              cout<<"fish bubble"<<endl;<BR> <P></B> <P> <P><B>       }<BR> <P></B> <P> <P>};</P> <P>void main()</P> <P>{</P> <P>       <B>fish fh;<BR> <P></B> <P> <P>       <B>animal *pAn=&fh;<BR> <P></B> <P> <P><B>       pAn->breathe();<BR> <P></B> <P> <DIV> <P>}</P></DIV> <P>       娉ㄦ剰錛屽湪渚?-1鐨勭▼搴忎腑娌℃湁瀹氫箟铏氬嚱鏁般傝冭檻涓涓嬩緥1-1鐨勭▼搴忔墽琛岀殑緇撴灉鏄粈涔堬紵</P> <P>       絳旀鏄緭鍑猴細animal breathe</P> <P>       鍦ㄧ被fish涓噸鍐欎簡breathe()鍑芥暟錛屾垜浠彲浠ョО涓哄嚱鏁扮殑瑕嗙洊銆傚湪main()鍑芥暟涓鍏堝畾涔変簡涓涓猣ish瀵硅薄fh錛屾帴鐫瀹氫箟浜嗕竴涓寚鍚慳nimal鐨勬寚閽堝彉閲弍An錛屽皢fh鐨勫湴鍧璧嬬粰浜嗘寚閽堝彉閲弍An錛岀劧鍚庡埄鐢ㄨ鍙橀噺璋冪敤pAn->breathe()銆傝澶氬鍛樺線寰灝嗚繖縐嶆儏鍐靛拰C++鐨勫鎬佹ф悶娣鋒穯錛岃涓篺h瀹為檯涓婃槸fish綾葷殑瀵硅薄錛屽簲璇ユ槸璋冪敤fish綾葷殑breathe()錛岃緭鍑衡渇ish bubble鈥濓紝鐒跺悗緇撴灉鍗翠笉鏄繖鏍楓備笅闈㈡垜浠粠涓や釜鏂歸潰鏉ヨ榪板師鍥犮?/P> <P>1銆?nbsp; 緙栬瘧鐨勮搴?/P> <P>C++緙栬瘧鍣ㄥ湪緙栬瘧鐨勬椂鍊欙紝瑕佺‘瀹氭瘡涓璞¤皟鐢ㄧ殑鍑芥暟鐨勫湴鍧錛岃繖縐頒負鏃╂湡緇戝畾錛坋arly binding錛夛紝褰撴垜浠皢fish綾葷殑瀵硅薄fh鐨勫湴鍧璧嬬粰pAn鏃訛紝C++緙栬瘧鍣ㄨ繘琛屼簡綾誨瀷杞崲錛屾鏃禖++緙栬瘧鍣ㄨ涓哄彉閲弍An淇濆瓨灝辨槸animal瀵硅薄鐨勫湴鍧銆傚綋鍦╩ain()鍑芥暟涓墽琛宲An->breathe()鏃訛紝璋冪敤鐨勫綋鐒跺氨鏄痑nimal瀵硅薄鐨刡reathe鍑芥暟銆?/P> <P>2銆?nbsp; 鍐呭瓨妯″瀷鐨勮搴?/P> <P>鎴戜滑緇欏嚭浜唂ish瀵硅薄鍐呭瓨妯″瀷錛屽涓嬪浘鎵紺猴細</P> <P align=center></P> <P> <P><?xml:namespace prefix = v /><v:rect><FONT face="Times New Roman" size=3><IMG onmousewheel="return bbimg(this)" style="WIDTH: 401px; CURSOR: pointer; ZOOM: 80%; HEIGHT: 213px" onclick=javascript:window.open(this.src); height=188 src="http://www.mybole.com.cn/bbs/UploadFile/2006-1/200611213332815.gif" width=359 onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;" border=0></FONT></v:rect></P> <P> <P> <P> <P> <P> <P><BR><BR><BR><BR><BR> <P><BR clear=all></P> <P align=center>鍥?- 1 fish綾誨璞$殑鍐呭瓨妯″瀷</P> <P> <P><FONT face="Times New Roman" size=3></FONT></P> <P><FONT size=3> <P>鎴戜滑鏋勯?FONT face="Times New Roman">fish</FONT>綾葷殑瀵硅薄鏃訛紝棣栧厛瑕佽皟鐢?FONT face="Times New Roman">animal</FONT>綾葷殑鏋勯犲嚱鏁板幓鏋勯?FONT face="Times New Roman">animal</FONT>綾葷殑瀵硅薄錛岀劧鍚庢墠璋冪敤<FONT face="Times New Roman">fish</FONT>綾葷殑鏋勯犲嚱鏁板畬鎴愯嚜韜儴鍒嗙殑鏋勯狅紝浠庤屾嫾鎺ュ嚭涓涓畬鏁寸殑<FONT face="Times New Roman">fish</FONT>瀵硅薄銆傚綋鎴戜滑灝?FONT face="Times New Roman">fish</FONT>綾葷殑瀵硅薄杞崲涓?FONT face="Times New Roman">animal</FONT>綾誨瀷鏃訛紝璇ュ璞″氨琚涓烘槸鍘熷璞℃暣涓唴瀛樻ā鍨嬬殑涓婂崐閮ㄥ垎錛屼篃灝辨槸鍥?FONT face="Times New Roman">1-1</FONT>涓殑鈥?FONT face="Times New Roman">animal</FONT>鐨勫璞℃墍鍗犲唴瀛樷濄傞偅涔堝綋鎴戜滑鍒╃敤綾誨瀷杞崲鍚庣殑瀵硅薄鎸囬拡鍘昏皟鐢ㄥ畠鐨勬柟娉曟椂錛屽綋鐒朵篃灝辨槸璋冪敤瀹冩墍鍦ㄧ殑鍐呭瓨涓殑鏂規(guī)硶銆傚洜姝わ紝鍑虹幇鍥?FONT face="Times New Roman">2.13</FONT>鎵紺虹殑緇撴灉錛屼篃灝遍『鐞嗘垚绔犱簡銆?/P> <H1><FONT face="Times New Roman">2.<FONT size=6>   </FONT></FONT>澶氭佹у拰铏氬嚱鏁?/H1> <P>姝e寰堝瀛﹀憳鎵鎯籌紝鍦ㄤ緥<FONT face="Times New Roman">1-1</FONT>鐨勭▼搴忎腑錛屾垜浠煡閬?FONT face="Times New Roman">pAn</FONT>瀹為檯鎸囧悜鐨勬槸<FONT face="Times New Roman">fish</FONT>綾葷殑瀵硅薄錛屾垜浠笇鏈涜緭鍑虹殑緇撴灉鏄奔鐨勫懠鍚告柟娉曪紝鍗寵皟鐢?FONT face="Times New Roman">fish</FONT>綾葷殑<FONT face="Times New Roman">breathe</FONT>鏂規(guī)硶銆傝繖涓椂鍊欙紝灝辮杞埌铏氬嚱鏁扮櫥鍦轟簡銆?/P> <P>鍓嶉潰杈撳嚭鐨勭粨鏋滄槸鍥犱負緙栬瘧鍣ㄥ湪緙栬瘧鐨勬椂鍊欙紝灝卞凡緇忕‘瀹氫簡瀵硅薄璋冪敤鐨勫嚱鏁扮殑鍦板潃錛岃瑙e喅榪欎釜闂灝辮浣跨敤榪熺粦瀹氾紙<FONT face="Times New Roman">late binding</FONT>錛夋妧鏈傚綋緙栬瘧鍣ㄤ嬌鐢ㄨ繜緇戝畾鏃訛紝灝變細鍦ㄨ繍琛屾椂鍐嶅幓紜畾瀵硅薄鐨勭被鍨嬩互鍙婃紜殑璋冪敤鍑芥暟銆傝岃璁╃紪璇戝櫒閲囩敤榪熺粦瀹氾紝灝辮鍦ㄥ熀綾諱腑澹版槑鍑芥暟鏃朵嬌鐢?FONT face="Times New Roman">virtual</FONT>鍏抽敭瀛楋紙娉ㄦ剰錛岃繖鏄繀欏葷殑錛屽緢澶氬鍛樺氨鏄洜涓烘病鏈変嬌鐢ㄨ櫄鍑芥暟鑰屽啓鍑哄緢澶氶敊璇殑渚嬪瓙錛夛紝榪欐牱鐨勫嚱鏁版垜浠О涓鴻櫄鍑芥暟銆備竴鏃︽煇涓嚱鏁板湪鍩虹被涓0鏄庝負<FONT face="Times New Roman">virtual</FONT>錛岄偅涔堝湪鎵鏈夌殑媧劇敓綾諱腑璇ュ嚱鏁伴兘鏄?FONT face="Times New Roman">virtual</FONT>錛岃屼笉闇瑕佸啀鏄劇ず鐨勫0鏄庝負<FONT face="Times New Roman">virtual</FONT>銆?/P> <P>涓嬮潰淇敼渚?FONT face="Times New Roman">1-1</FONT>鐨勪唬鐮侊紝灝?FONT face="Times New Roman">animal</FONT>綾諱腑鐨?FONT face="Times New Roman">breathe()</FONT>鍑芥暟澹版槑涓?FONT face="Times New Roman">virtual</FONT>錛屽涓嬶細</P> <DIV> <P align=center><FONT size=2>渚?FONT face=Arial>1- 2</FONT></FONT></P></DIV> <P><FONT face="Times New Roman">#include <iostream.h></FONT></P> <P><FONT face="Times New Roman">class animal</FONT></P> <P><FONT face="Times New Roman">{</FONT></P> <P><FONT face="Times New Roman">public:</FONT></P> <P><FONT face="Times New Roman">       void sleep()</FONT></P> <P><FONT face="Times New Roman">       {</FONT></P> <P><FONT face="Times New Roman">              cout<<"animal sleep"<<endl;</FONT></P> <P><FONT face="Times New Roman">       }</FONT></P> <P><FONT face="Times New Roman">       <B>virtual </B>void breathe()</FONT></P> <P><FONT face="Times New Roman">       {</FONT></P> <P><FONT face="Times New Roman">              cout<<"animal breathe"<<endl;</FONT></P> <P><FONT face="Times New Roman">       }</FONT></P> <P><FONT face="Times New Roman">};</FONT></P> <P><FONT face="Times New Roman">class fish:public animal</FONT></P> <P><FONT face="Times New Roman">{</FONT></P> <P><FONT face="Times New Roman">public:</FONT></P> <P><FONT face="Times New Roman">       void breathe()</FONT></P> <P><FONT face="Times New Roman">       {</FONT></P> <P><FONT face="Times New Roman">              cout<<"fish bubble"<<endl;</FONT></P> <P><FONT face="Times New Roman">       }</FONT></P> <P><FONT face="Times New Roman">};</FONT></P> <P><FONT face="Times New Roman">void main()</FONT></P> <P><FONT face="Times New Roman">{</FONT></P> <P><FONT face="Times New Roman">       fish fh;</FONT></P> <P><FONT face="Times New Roman">       animal *pAn=&fh;</FONT></P> <P><FONT face="Times New Roman">       pAn->breathe();</FONT></P> <DIV> <P><FONT face="Times New Roman">}</FONT></P></DIV> <P>澶у鍙互鍐嶆榪愯榪欎釜紼嬪簭錛屼綘浼氬彂鐜扮粨鏋滄槸鈥?FONT face="Times New Roman">fish bubble</FONT>鈥濓紝涔熷氨鏄牴鎹璞$殑綾誨瀷璋冪敤浜嗘紜殑鍑芥暟銆?/P> <P>閭d箞褰撴垜浠皢<FONT face="Times New Roman">breathe()</FONT>澹版槑涓?FONT face="Times New Roman">virtual</FONT>鏃訛紝鍦ㄨ儗鍚庡彂鐢熶簡浠涔堝憿錛?/P> <P>緙栬瘧鍣ㄥ湪緙栬瘧鐨勬椂鍊欙紝鍙戠幇animal綾諱腑鏈夎櫄鍑芥暟錛屾鏃剁紪璇戝櫒浼氫負姣忎釜鍖呭惈铏氬嚱鏁扮殑綾誨垱寤轟竴涓櫄琛紙鍗硋table錛夛紝璇ヨ〃鏄竴涓竴緇存暟緇勶紝鍦ㄨ繖涓暟緇勪腑瀛樻斁姣忎釜铏氬嚱鏁扮殑鍦板潃銆傚浜庝緥1-2鐨勭▼搴忥紝animal鍜宖ish綾婚兘鍖呭惈浜嗕竴涓櫄鍑芥暟breathe()錛屽洜姝ょ紪璇戝櫒浼氫負榪欎袱涓被閮藉緩绔嬩竴涓櫄琛紝濡備笅鍥炬墍紺猴細</FONT><IMG onmousewheel="return bbimg(this)" style="CURSOR: pointer; ZOOM: 90%" onclick=javascript:window.open(this.src); src="http://www.mybole.com.cn/bbs/UploadFile/2006-1/200611213817767.gif" onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;" border=0></P> <P align=center>鍥?- 2 animal綾誨拰fish綾葷殑铏氳〃</P> <P><FONT size=3><FONT face="Times New Roman">       </FONT>閭d箞濡備綍瀹氫綅铏氳〃鍛紵緙栬瘧鍣ㄥ彟澶栬繕涓烘瘡涓被鎻愪緵浜嗕竴涓櫄琛ㄦ寚閽堬紙鍗?FONT face="Times New Roman">vptr</FONT>錛夛紝榪欎釜鎸囬拡鎸囧悜浜嗗璞$殑铏氳〃銆傚湪紼嬪簭榪愯鏃訛紝鏍規(guī)嵁瀵硅薄鐨勭被鍨嬪幓鍒濆鍖?FONT face="Times New Roman">vptr</FONT>錛屼粠鑰岃<FONT face="Times New Roman">vptr</FONT>姝g‘鐨勬寚鍚戞墍灞炵被鐨勮櫄琛紝浠庤屽湪璋冪敤铏氬嚱鏁版椂錛屽氨鑳藉鎵懼埌姝g‘鐨勫嚱鏁般傚浜庝緥<FONT face="Times New Roman">1-2</FONT>鐨勭▼搴忥紝鐢變簬<FONT face="Times New Roman">pAn</FONT>瀹為檯鎸囧悜鐨勫璞$被鍨嬫槸<FONT face="Times New Roman">fish</FONT>錛屽洜姝?FONT face="Times New Roman">vptr</FONT>鎸囧悜鐨?FONT face="Times New Roman">fish</FONT>綾葷殑<FONT face="Times New Roman">vtable</FONT>錛屽綋璋冪敤<FONT face="Times New Roman">pAn->breathe()</FONT>鏃訛紝鏍規(guī)嵁铏氳〃涓殑鍑芥暟鍦板潃鎵懼埌鐨勫氨鏄?FONT face="Times New Roman">fish</FONT>綾葷殑<FONT face="Times New Roman">breathe()</FONT>鍑芥暟銆?/FONT></P> <P><FONT size=3>姝f槸鐢變簬姣忎釜瀵硅薄璋冪敤鐨勮櫄鍑芥暟閮芥槸閫氳繃铏氳〃鎸囬拡鏉ョ儲寮曠殑錛屼篃灝卞喅瀹氫簡铏氳〃鎸囬拡鐨勬紜垵濮嬪寲鏄潪甯擱噸瑕佺殑銆傛崲鍙ヨ瘽璇達紝鍦ㄨ櫄琛ㄦ寚閽堟病鏈夋紜垵濮嬪寲涔嬪墠錛屾垜浠笉鑳藉鍘昏皟鐢ㄨ櫄鍑芥暟銆傞偅涔堣櫄琛ㄦ寚閽堝湪浠涔堟椂鍊欙紝鎴栬呰鍦ㄤ粈涔堝湴鏂瑰垵濮嬪寲鍛紵</FONT></P> <P><FONT size=3>絳旀鏄湪鏋勯犲嚱鏁頒腑榪涜铏氳〃鐨勫垱寤哄拰铏氳〃鎸囬拡鐨勫垵濮嬪寲銆傝繕璁板緱鏋勯犲嚱鏁扮殑璋冪敤欏哄簭鍚楋紝鍦ㄦ瀯閫犲瓙綾誨璞℃椂錛岃鍏堣皟鐢ㄧ埗綾葷殑鏋勯犲嚱鏁幫紝姝ゆ椂緙栬瘧鍣ㄥ彧鈥滅湅鍒頒簡鈥濈埗綾伙紝騫朵笉鐭ラ亾鍚庨潰鏄惁鍚庤繕鏈夌戶鎵胯咃紝瀹冨垵濮嬪寲鐖剁被鐨勮櫄琛ㄦ寚閽堬紝璇ヨ櫄琛ㄦ寚閽堟寚鍚戠埗綾葷殑铏氳〃銆傚綋鎵ц瀛愮被鐨勬瀯閫犲嚱鏁版椂錛屽瓙綾葷殑铏氳〃鎸囬拡琚垵濮嬪寲錛屾寚鍚戣嚜韜殑铏氳〃銆傚浜庝緥<FONT face="Times New Roman">2-2</FONT>鐨勭▼搴忔潵璇達紝褰?FONT face="Times New Roman">fish</FONT>綾葷殑<FONT face="Times New Roman">fh</FONT>瀵硅薄鏋勯犲畬姣曞悗錛屽叾鍐呴儴鐨勮櫄琛ㄦ寚閽堜篃灝辮鍒濆鍖栦負鎸囧悜<FONT face="Times New Roman">fish</FONT>綾葷殑铏氳〃銆傚湪綾誨瀷杞崲鍚庯紝璋冪敤<FONT face="Times New Roman">pAn->breathe()</FONT>錛岀敱浜?FONT face="Times New Roman">pAn</FONT>瀹為檯鎸囧悜鐨勬槸<FONT face="Times New Roman">fish</FONT>綾葷殑瀵硅薄錛岃瀵硅薄鍐呴儴鐨勮櫄琛ㄦ寚閽堟寚鍚戠殑鏄?FONT face="Times New Roman">fish</FONT>綾葷殑铏氳〃錛屽洜姝ゆ渶緇堣皟鐢ㄧ殑鏄?FONT face="Times New Roman">fish</FONT>綾葷殑<FONT face="Times New Roman">breathe()</FONT>鍑芥暟銆?/FONT></P> <P><FONT size=3>瑕佹敞鎰忥細瀵逛簬铏氬嚱鏁拌皟鐢ㄦ潵璇達紝姣忎竴涓璞″唴閮ㄩ兘鏈変竴涓櫄琛ㄦ寚閽堬紝璇ヨ櫄琛ㄦ寚閽堣鍒濆鍖栦負鏈被鐨勮櫄琛ㄣ傛墍浠ュ湪紼嬪簭涓紝涓嶇浣犵殑瀵硅薄綾誨瀷濡備綍杞崲錛屼絾璇ュ璞″唴閮ㄧ殑铏氳〃鎸囬拡鏄浐瀹氱殑錛屾墍浠ュ憿錛屾墠鑳藉疄鐜板姩鎬佺殑瀵硅薄鍑芥暟璋冪敤錛岃繖灝辨槸<FONT face="Times New Roman">C++</FONT>澶氭佹у疄鐜扮殑鍘熺悊銆?/FONT></P> <P><FONT size=3>鎬葷粨錛堝熀綾繪湁铏氬嚱鏁幫級錛?/FONT></P> <P><FONT face="Times New Roman"><FONT size=3>1銆?/FONT>  </FONT><FONT size=3>姣忎竴涓被閮芥湁铏氳〃銆?/FONT></P> <P><FONT face="Times New Roman"><FONT size=3>2銆?/FONT>  </FONT><FONT size=3>铏氳〃鍙互緇ф壙錛屽鏋滃瓙綾繪病鏈夐噸鍐欒櫄鍑芥暟錛岄偅涔堝瓙綾昏櫄琛ㄤ腑浠嶇劧浼氭湁璇ュ嚱鏁扮殑鍦板潃錛屽彧涓嶈繃榪欎釜鍦板潃鎸囧悜鐨勬槸鍩虹被鐨勮櫄鍑芥暟瀹炵幇銆傚鏋滃熀綾?FONT face="Times New Roman">3</FONT>涓櫄鍑芥暟錛岄偅涔堝熀綾葷殑铏氳〃涓氨鏈変笁欏癸紙铏氬嚱鏁板湴鍧錛夛紝媧劇敓綾諱篃浼氭湁铏氳〃錛岃嚦灝戞湁涓夐」錛屽鏋滈噸鍐欎簡鐩稿簲鐨勮櫄鍑芥暟錛岄偅涔堣櫄琛ㄤ腑鐨勫湴鍧灝變細鏀瑰彉錛屾寚鍚戣嚜韜殑铏氬嚱鏁板疄鐜般傚鏋滄淳鐢熺被鏈夎嚜宸辯殑铏氬嚱鏁幫紝閭d箞铏氳〃涓氨浼氭坊鍔犺欏廣?/FONT></P> <P><FONT face="Times New Roman"><FONT size=3>3銆?/FONT>  </FONT><FONT size=3>媧劇敓綾葷殑铏氳〃涓櫄鍑芥暟鍦板潃鐨勬帓鍒楅『搴忓拰鍩虹被鐨勮櫄琛ㄤ腑铏氬嚱鏁板湴鍧鎺掑垪欏哄簭鐩稿悓銆?/FONT></P> <H1><FONT face="Times New Roman">3.   VC</FONT>瑙嗛絎笁璇?FONT face="Times New Roman">this</FONT>鎸囬拡璇存槑</H1> <P><FONT size=3>鎴戝湪璁哄潧鐨?FONT face="Times New Roman">VC</FONT>鏁欏瑙嗛鐗堥潰鍙戜簡甯栧瓙錛屾槸妯℃嫙<FONT face="Times New Roman">MFC</FONT>綾誨簱鐨勪緥瀛愬啓鐨勶紝涓昏鏄鏄庡湪鍩虹被鐨勬瀯閫犲嚱鏁頒腑淇濆瓨鐨?FONT face="Times New Roman">this</FONT>鎸囬拡鏄寚鍚戝瓙綾葷殑錛屾垜浠湪鐪嬩竴涓嬭繖涓緥瀛愶細</FONT></P> <DIV> <P align=center>渚?- 3</P></DIV> <P><FONT face="Times New Roman"><FONT size=3>#include <iostream.h><BR> <P></FONT></FONT> <P> <P> <P><FONT face="Times New Roman" size=3></FONT></P> <P> <P><FONT face="Times New Roman"><FONT size=3>class base;<BR> <P></FONT></FONT> <P> <P> <P><FONT face="Times New Roman" size=3></FONT></P> <P> <P><FONT face="Times New Roman"><FONT size=3>base * pbase;<BR> <P></FONT></FONT> <P> <P> <P><FONT face="Times New Roman" size=3></FONT></P> <P> <P><FONT face="Times New Roman"><FONT size=3>class base<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>{<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>public:<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       base()<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       {<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>              pbase=this;<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>              <BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       }<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       virtual void fn()<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       {<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>              cout<<"base"<<endl;<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       }<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>};<BR> <P></FONT></FONT> <P> <P> <P><FONT face="Times New Roman" size=3></FONT></P> <P> <P><FONT face="Times New Roman"><FONT size=3>class derived:public base<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>{<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       void fn()<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       {<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>              cout<<"derived"<<endl;<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       }<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>};<BR> <P></FONT></FONT> <P> <P> <P><FONT face="Times New Roman" size=3></FONT></P> <P> <P><FONT face="Times New Roman"><FONT size=3>derived aa;<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>void main()<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>{<BR> <P></FONT></FONT> <P> <P><FONT face="Times New Roman"><FONT size=3>       pbase->fn();<BR> <P></FONT></FONT> <P> <DIV> <P><FONT face="Times New Roman" size=3>}</FONT></P></DIV> <P><FONT size=3>鎴戝湪<FONT face="Times New Roman">base</FONT>綾葷殑鏋勯犲嚱鏁頒腑灝?FONT face="Times New Roman">this</FONT>鎸囬拡淇濆瓨鍒?FONT face="Times New Roman">pbase</FONT>鍏ㄥ眬鍙橀噺涓傚湪瀹氫箟鍏ㄥ眬瀵硅薄<FONT face="Times New Roman">aa</FONT>錛屽嵆璋冪敤<FONT face="Times New Roman">derived aa;</FONT>鏃訛紝瑕佽皟鐢ㄥ熀綾葷殑鏋勯犲嚱鏁幫紝鍏堟瀯閫犲熀綾葷殑閮ㄥ垎錛岀劧鍚庢槸瀛愮被鐨勯儴鍒嗭紝鐢辮繖涓ら儴鍒嗘嫾鎺ュ嚭瀹屾暣鐨勫璞?FONT face="Times New Roman">aa</FONT>銆傝繖涓?FONT face="Times New Roman">this</FONT>鎸囬拡鎸囧悜鐨勫綋鐒朵篃灝辨槸<FONT face="Times New Roman">aa</FONT>瀵硅薄錛岄偅涔堟垜浠?FONT face="Times New Roman">main()</FONT>鍑芥暟涓埄鐢?FONT face="Times New Roman">pbase</FONT>璋冪敤<FONT face="Times New Roman">fn()</FONT>錛屽洜涓?FONT face="Times New Roman">pbase</FONT>瀹為檯鎸囧悜鐨勬槸<FONT face="Times New Roman">aa</FONT>瀵硅薄錛岃?FONT face="Times New Roman">aa</FONT>瀵硅薄鍐呴儴鐨勮櫄琛ㄦ寚閽堟寚鍚戠殑鏄嚜韜殑铏氳〃錛屾渶緇堣皟鐢ㄧ殑褰撶劧鏄?FONT face="Times New Roman">derived</FONT>綾諱腑鐨?FONT face="Times New Roman">fn()</FONT>鍑芥暟銆?/FONT></P> <P><FONT size=3>鍦ㄨ繖涓緥瀛愪腑錛岀敱浜庢垜鐨勭枏蹇斤紝鍦?FONT face="Times New Roman">derived</FONT>綾諱腑澹版槑<FONT face="Times New Roman">fn()</FONT>鍑芥暟鏃訛紝蹇樹簡鍔?FONT face="Times New Roman">public</FONT>鍏抽敭瀛楋紝瀵艱嚧澹版槑涓轟簡<FONT face="Times New Roman">private</FONT>錛堥粯璁や負<FONT face="Times New Roman">private</FONT>錛夛紝浣嗛氳繃鍓嶉潰鎴戜滑鎵璁茶堪鐨勮櫄鍑芥暟璋冪敤鏈哄埗錛屾垜浠篃灝辨槑鐧戒簡榪欎釜鍦版柟騫朵笉褰卞搷瀹冭緭鍑烘紜殑緇撴灉銆備笉鐭ラ亾榪欑畻涓嶇畻<FONT face="Times New Roman">C++</FONT>鐨勪竴涓?FONT face="Times New Roman">Bug</FONT>錛屽洜涓鴻櫄鍑芥暟鐨勮皟鐢ㄦ槸鍦ㄨ繍琛屾椂紜畾璋冪敤鍝竴涓嚱鏁幫紝鎵浠ョ紪璇戝櫒鍦ㄧ紪璇戞椂錛屽茍涓嶇煡閬?FONT face="Times New Roman">pbase</FONT>鎸囧悜鐨勬槸<FONT face="Times New Roman">aa</FONT>瀵硅薄錛屾墍浠ュ鑷磋繖涓鎬幇璞$殑鍙戠敓銆傚鏋滀綘鐩存帴鐢?FONT face="Times New Roman">aa</FONT>瀵硅薄鍘昏皟鐢紝鐢變簬瀵硅薄綾誨瀷鏄‘瀹氱殑錛堟敞鎰?FONT face="Times New Roman">aa</FONT>鏄璞″彉閲忥紝涓嶆槸鎸囬拡鍙橀噺錛夛紝緙栬瘧鍣ㄥ線寰浼氶噰鐢ㄦ棭鏈熺粦瀹氾紝鍦ㄧ紪璇戞椂紜畾璋冪敤鐨勫嚱鏁幫紝浜庢槸灝變細鍙戠幇<FONT face="Times New Roman">fn()</FONT>鏄鏈夌殑錛屼笉鑳界洿鎺ヨ皟鐢ㄣ傦細錛?/FONT></P> <P><FONT size=3>璁稿瀛﹀憳鍦ㄥ啓榪欎釜渚嬪瓙鏃訛紝鐩存帴鍦ㄥ熀綾葷殑鏋勯犲嚱鏁頒腑璋冪敤铏氬嚱鏁幫紝鍓嶉潰宸茬粡璇翠簡錛屽湪璋冪敤鍩虹被鐨勬瀯閫犲嚱鏁版椂錛岀紪璇戝櫒鍙滅湅鍒頒簡鈥濈埗綾伙紝騫朵笉鐭ラ亾鍚庨潰鏄惁鍚庤繕鏈夌戶鎵胯咃紝瀹冨彧鏄垵濮嬪寲鐖剁被鐨勮櫄琛ㄦ寚閽堬紝璁╄铏氳〃鎸囬拡鎸囧悜鐖剁被鐨勮櫄琛紝鎵浠ヤ綘鐪嬪埌緇撴灉褰撶劧涓嶆紜傚彧鏈夊湪瀛愮被鐨勬瀯閫犲嚱鏁拌皟鐢ㄥ畬姣曞悗錛屾暣涓櫄琛ㄦ墠鏋勫緩瀹屾瘯錛屾鏃舵墠鑳界湡姝e簲鐢?FONT face="Times New Roman">C++</FONT>鐨勫鎬佹с?B>鎹㈠彞璇濊錛屾垜浠笉瑕佸湪鏋勯犲嚱鏁頒腑鍘昏皟鐢ㄨ櫄鍑芥暟錛屽綋鐒跺鏋滀綘鍙槸鎯寵皟鐢ㄦ湰綾葷殑鍑芥暟錛屼篃鏃犳墍璋撱?/B><B> <P></B></FONT> <P> <H1><FONT face="Times New Roman">4.<FONT size=6>   </FONT></FONT>鍙傝冭祫鏂欙細</H1> <P><FONT size=3><FONT face="Times New Roman">1</FONT>銆佹枃绔犮婂湪<FONT face="Times New Roman">VC6.0</FONT>涓櫄鍑芥暟鐨勫疄鐜版柟娉曘嬶紝浣滆咃細<FONT face="Times New Roman">backer </FONT>錛岀綉鍧錛?/FONT></P> <P><FONT face="Times New Roman" size=3>http://www.mybole.com.cn/bbs/dispbbs.asp?boardid=4&id=1012&star=1</FONT></P> <P><FONT size=3><FONT face="Times New Roman">2</FONT>銆佷功銆?FONT face="Times New Roman">C++</FONT>緙栫▼鎬濇兂銆?FONT face="Times New Roman"> </FONT>鏈烘宸ヤ笟鍑虹増紺?/FONT></P> <H1><FONT face="Times New Roman">5.<FONT size=6>   </FONT></FONT>鍚庤</H1> <P><FONT size=3>鏈兂鍐嶅啓璇︾粏浜涳紝鍙戠幇鏃墮棿涓嶅錛屾繪槸鏈夊緢澶氫簨鎯咃紝鍦ㄥ姞涓婃按騫充篃鏈夐檺錛屾兂鎯寵繕鏄互鍚庡啀璇村惂銆備笉榪囨垜鐩鎬俊錛岃繖浜涘唴瀹逛篃鑳藉甯姪澶у寰堝ソ鐨勭悊瑙d簡銆備篃嬈㈣繋緗戝弸鑳藉緇х畫琛ュ厖錛屽ぇ瀹跺彲浠ラ紦鍔ㄩ紦鍔?FONT face="Times New Roman">backer</FONT>錛岃浠栦粠姹囩紪鐨勮搴﹀啀緇欎竴涓鏄庯紝鍝堝搱錛屽埆璇存垜璇寸殑銆?/FONT></P><BR><img src ="http://www.shnenglu.com/richardzeng/aggbug/3924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/richardzeng/" target="_blank">Beginning to 緙栫▼</a> 2006-03-09 10:56 <a href="http://www.shnenglu.com/richardzeng/archive/2006/03/09/3924.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://7ccdd.com" target="_blank">韩日视频一区</a>| <a href="http://www-733999.com" target="_blank">久久青草欧美一区二区三区</a>| <a href="http://689657.com" target="_blank">欧美久久99</a>| <a href="http://7811c.com" target="_blank">在线亚洲欧美</a>| <a href="http://wwwhaodd116.com" target="_blank">亚洲欧美激情四射在线日 </a>| <a href="http://khc83.com" target="_blank">最新高清无码专区</a>| <a href="http://hakuihoso.com" target="_blank">亚洲精品欧洲</a>| <a href="http://lymzdd.com" target="_blank">国产综合自拍</a>| <a href="http://yunpiwang.com" target="_blank">亚洲第一页中文字幕</a>| <a href="http://26thb.com" target="_blank">欧美精品手机在线</a>| <a href="http://aa56789.com" target="_blank">久久国产日韩欧美</a>| <a href="http://miaoxp.com" target="_blank">欧美人成在线视频</a>| <a href="http://pansinobbs.com" target="_blank">欧美影院久久久</a>| <a href="http://8181777.com" target="_blank">老司机精品视频网站</a>| <a href="http://89wbw.com" target="_blank">亚洲一区二区三区在线</a>| <a href="http://4488269.com" target="_blank">久久久久久久久久久成人</a>| <a href="http://www333393.com" target="_blank">亚洲精品小视频在线观看</a>| <a href="http://www-18873.com" target="_blank">在线视频你懂得一区</a>| <a href="http://xhs1039.com" target="_blank">一区二区三区在线视频观看 </a>| <a href="http://taoseav8.com" target="_blank">快she精品国产999</a>| <a href="http://www-kj777.com" target="_blank">欧美日韩一区二区三区在线视频</a>| <a href="http://1397979.com" target="_blank">久久国产99</a>| <a href="http://300618.com" target="_blank">欧美日韩在线观看一区二区</a>| <a href="http://cnm24.com" target="_blank">久久亚洲欧美</a>| <a href="http://sz-changrong.com" target="_blank">欧美日韩在线观看一区二区三区</a>| <a href="http://5177jy.com" target="_blank">久久理论片午夜琪琪电影网</a>| <a href="http://wwwwy9001.com" target="_blank">欧美日韩国产色视频</a>| <a href="http://395493.com" target="_blank">久久久久久久一区二区三区</a>| <a href="http://987kt.com" target="_blank">欧美日韩伦理在线</a>| <a href="http://zzmzit.com" target="_blank">亚洲福利精品</a>| <a href="http://394141.com" target="_blank">激情成人亚洲</a>| <a href="http://56lin.com" target="_blank">午夜精品亚洲</a>| <a href="http://ttmitch.com" target="_blank">亚洲一区二区精品在线</a>| <a href="http://hy1598.com" target="_blank">麻豆av一区二区三区久久</a>| <a href="http://wwwbbb888999.com" target="_blank">欧美一区二区三区另类</a>| <a href="http://erosgems.com" target="_blank">欧美日韩黄色大片</a>| <a href="http://7234hh.com" target="_blank">欧美刺激午夜性久久久久久久</a>| <a href="http://y4088.com" target="_blank">国产日韩av高清</a>| <a href="http://039658.com" target="_blank">中文国产一区</a>| <a href="http://99999zc.com" target="_blank">亚洲欧美日韩国产综合</a>| <a href="http://wzsl8.com" target="_blank">国产精品自拍网站</a>| <a href="http://77017w.com" target="_blank">亚洲精品麻豆</a>| <a href="http://www-137999.com" target="_blank">亚洲高清视频的网址</a>| <a href="http://492541.com" target="_blank">欧美一区二区高清</a>| <a href="http://133969.com" target="_blank">欧美一区二区三区电影在线观看</a>| <a href="http://0855d.com" target="_blank">欧美日韩国产综合一区二区</a>| <a href="http://tizenkorea.com" target="_blank">亚洲盗摄视频</a>| <a href="http://3451215.com" target="_blank">亚洲精品久久在线</a>| <a href="http://www-11688.com" target="_blank">老司机精品视频网站</a>| <a href="http://yqr55.com" target="_blank">欧美电影打屁股sp</a>| <a href="http://876769.com" target="_blank">在线观看欧美</a>| <a href="http://hczztj.com" target="_blank">美女啪啪无遮挡免费久久网站</a>| <a href="http://05ec.com" target="_blank">久久一区二区精品</a>| <a href="http://tianxiantxtv.com" target="_blank">国产一区二区中文</a>| <a href="http://6677ch.com" target="_blank">久久激情视频免费观看</a>| <a href="http://ww323.com" target="_blank">久久精品一区二区</a>| <a href="http://874805.com" target="_blank">国产自产2019最新不卡</a>| <a href="http://ywbst8g4tukcsqhioikc.com" target="_blank">亚洲欧美激情视频</a>| <a href="http://qiansemf.com" target="_blank">久久精品国产精品</a>| <a href="http://hkbsi.com" target="_blank">黑人极品videos精品欧美裸</a>| <a href="http://36seaa.com" target="_blank">久久精品国产99国产精品澳门 </a>| <a href="http://4488269.com" target="_blank">亚洲一级二级在线</a>| <a href="http://8bc3.com" target="_blank">欧美网站在线观看</a>| <a href="http://wallypanel.com" target="_blank">一区二区三区国产盗摄</a>| <a href="http://by3787.com" target="_blank">亚洲砖区区免费</a>| <a href="http://hjersqc.com" target="_blank">国产精品高潮呻吟</a>| <a href="http://smiczbb.com" target="_blank">性高湖久久久久久久久</a>| <a href="http://126900.com" target="_blank">久久久久久久久久久久久女国产乱 </a>| <a href="http://zzmzit.com" target="_blank">国产精品欧美久久</a>| <a href="http://aaa211.com" target="_blank">亚洲在线观看视频</a>| <a href="http://sauske.com" target="_blank">久久精品一二三</a>| <a href="http://chaoxibg.com" target="_blank">在线观看日韩av先锋影音电影院</a>| <a href="http://neudlac.com" target="_blank">裸体女人亚洲精品一区</a>| <a href="http://hbstjsgc.com" target="_blank">亚洲国产一区在线</a>| <a href="http://snis675.com" target="_blank">亚洲影院污污.</a>| <a href="http://y3u7.com" target="_blank">国产真实久久</a>| <a href="http://wwwiqiuxia.com" target="_blank">免费人成精品欧美精品</a>| <a href="http://ythbhg.com" target="_blank">亚洲美洲欧洲综合国产一区</a>| <a href="http://dlwansheng.com" target="_blank">亚洲字幕一区二区</a>| <a href="http://613by.com" target="_blank">国内揄拍国内精品久久</a>| <a href="http://wwwbaoyu66.com" target="_blank">牛牛影视久久网</a>| <a href="http://b46n.com" target="_blank">一本久久a久久精品亚洲</a>| <a href="http://7749137.com" target="_blank">欧美在线视屏</a>| <a href="http://devmashup.com" target="_blank">亚洲破处大片</a>| <a href="http://dtwave-ind.com" target="_blank">国产精品黄视频</a>| <a href="http://www89999.com" target="_blank">久久免费一区</a>| <a href="http://gjjlzs.com" target="_blank">亚洲精品之草原avav久久</a>| <a href="http://xilxx.com" target="_blank">午夜精品成人在线</a>| <a href="http://wwwsao117.com" target="_blank">在线精品国产欧美</a>| <a href="http://4438x28.com" target="_blank">欧美日韩在线一二三</a>| <a href="http://www-68689.com" target="_blank">欧美一区二区高清</a>| <a href="http://jiejiesao8.com" target="_blank">亚洲精品三级</a>| <a href="http://621791.com" target="_blank">蜜臀av性久久久久蜜臀aⅴ</a>| <a href="http://wg135.com" target="_blank">9久草视频在线视频精品</a>| <a href="http://77smsm.com" target="_blank">国产日韩在线看</a>| <a href="http://0070571.com" target="_blank">欧美高清视频</a>| <a href="http://787622.com" target="_blank">欧美一区永久视频免费观看</a>| <a href="http://5101h.com" target="_blank">91久久嫩草影院一区二区</a>| <a href="http://zj-jufeng.com" target="_blank">欧美在线观看网址综合</a>| <a href="http://sxhrsmjj.com" target="_blank">亚洲免费观看高清完整版在线观看</a>| <a href="http://778877k.com" target="_blank">国产精品视频成人</a>| <a href="http://7776701.com" target="_blank">欧美伦理影院</a>| <a href="http://4008305555.com" target="_blank">久久久久久高潮国产精品视</a>| <a href="http://htzhuanli.com" target="_blank">夜夜精品视频一区二区</a>| <a href="http://9238479.com" target="_blank">欧美国产第一页</a>| <a href="http://pgd857.com" target="_blank">久久精品一区二区国产</a>| <a href="http://668756.com" target="_blank">亚洲美女啪啪</a>| <a href="http://479n.com" target="_blank">免费毛片一区二区三区久久久</a>| <a href="http://nmbgbc.com" target="_blank">亚洲欧美久久</a>| <a href="http://aqd072.com" target="_blank">夜夜夜久久久</a>| <a href="http://ssss96.com" target="_blank">亚洲片国产一区一级在线观看</a>| <a href="http://eastasp.com" target="_blank">国产伪娘ts一区</a>| <a href="http://y4088.com" target="_blank">国产精品成人av性教育</a>| <a href="http://sishengnv.com" target="_blank">免费成人av资源网</a>| <a href="http://1355456.com" target="_blank">久久久久国产精品一区三寸</a>| <a href="http://yyypdq.com" target="_blank">亚洲丝袜av一区</a>| <a href="http://ylnnc.com" target="_blank">99re视频这里只有精品</a>| <a href="http://by1422.com" target="_blank">亚洲高清视频在线</a>| <a href="http://1194123.com" target="_blank">乱中年女人伦av一区二区</a>| <a href="http://hnautos.com" target="_blank">欧美一级在线视频</a>| <a href="http://xiaoyaer.com" target="_blank">亚洲一区二区在线免费观看</a>| <a href="http://4tobi.com" target="_blank">亚洲日本激情</a>| <a href="http://yada-jg.com" target="_blank">91久久在线观看</a>| <a href="http://tfccrk.com" target="_blank">亚洲国产精品久久久久秋霞影院</a>| <a href="http://bbww55.com" target="_blank">国产亚洲女人久久久久毛片</a>| <a href="http://heshundadi.com" target="_blank">国产精品视频在线观看</a>| <a href="http://xpfuli.com" target="_blank">欧美性jizz18性欧美</a>| <a href="http://metagasa.com" target="_blank">欧美日韩成人一区</a>| <a href="http://www-369111.com" target="_blank">欧美高清自拍一区</a>| <a href="http://by21999.com" target="_blank">欧美激情一区在线观看</a>| <a href="http://521mu.com" target="_blank">欧美高清视频一区二区</a>| <a href="http://329374.com" target="_blank">美女精品在线观看</a>| <a href="http://pgd857.com" target="_blank">欧美成人资源</a>| <a href="http://236664.com" target="_blank">欧美精品偷拍</a>| <a href="http://bby99.com" target="_blank">欧美视频中文一区二区三区在线观看 </a>| <a href="http://sdsankeguo.com" target="_blank">欧美性天天影院</a>| <a href="http://v58q.com" target="_blank">欧美日韩国产一级</a>| <a href="http://www50050.com" target="_blank">欧美激情精品久久久</a>| <a href="http://htzhuanli.com" target="_blank">欧美.www</a>| <a href="http://9882355.com" target="_blank">欧美日韩国产123区</a>| <a href="http://wwwlywbb.com" target="_blank">欧美噜噜久久久xxx</a>| <a href="http://nxhjzddata.com" target="_blank">欧美日韩一区二区三区四区五区</a>| <a href="http://wwwhhh396.com" target="_blank">欧美精品黄色</a>| <a href="http://52wenxiu.com" target="_blank">欧美四级剧情无删版影片</a>| <a href="http://596361.com" target="_blank">欧美视频在线观看一区二区</a>| <a href="http://jnjpsm.com" target="_blank">国产精品国产馆在线真实露脸</a>| <a href="http://81ffff.com" target="_blank">国产精品户外野外</a>| <a href="http://dv6699.com" target="_blank">国产欧美日韩不卡</a>| <a href="http://qiruiwangluo.com" target="_blank">激情综合电影网</a>| <a href="http://www559955.com" target="_blank">最新成人av网站</a>| <a href="http://5110010.com" target="_blank">中文国产亚洲喷潮</a>| <a href="http://26mmmm.com" target="_blank">午夜精品久久久久久久久久久久 </a>| <a href="http://cp3824.com" target="_blank">亚洲无线一线二线三线区别av</a>| <a href="http://710691.com" target="_blank">亚洲一区欧美二区</a>| <a href="http://www-787333.com" target="_blank">久久国产主播</a>| <a href="http://qq666qq.com" target="_blank">欧美aⅴ99久久黑人专区</a>| <a href="http://663747.com" target="_blank">亚洲国产精品www</a>| <a href="http://444yd.com" target="_blank">一区二区福利</a>| <a href="http://bbbbyb.com" target="_blank">久久精品亚洲一区二区</a>| <a href="http://wwwnnnn.com" target="_blank">欧美福利精品</a>| <a href="http://jav1111.com" target="_blank">国产精品欧美日韩一区</a>| <a href="http://9xxpp.com" target="_blank">**网站欧美大片在线观看</a>| <a href="http://yqr55.com" target="_blank">亚洲伦理在线</a>| <a href="http://667996.com" target="_blank">久久精品视频免费播放</a>| <a href="http://18mmcg.com" target="_blank">欧美激情视频免费观看</a>| <a href="http://jdavmm.com" target="_blank">一本色道久久</a>| <a href="http://959425.com" target="_blank">久久久综合免费视频</a>| <a href="http://tk99444.com" target="_blank">欧美精品少妇一区二区三区</a>| <a href="http://842332.com" target="_blank">国产人成一区二区三区影院</a>| <a href="http://ae262.com" target="_blank">亚洲二区在线</a>| <a href="http://my777752.com" target="_blank">亚洲欧美国内爽妇网</a>| <a href="http://yzstbjt.com" target="_blank">欧美mv日韩mv国产网站</a>| <a href="http://jxchunlong.com" target="_blank">一区二区三区欧美在线观看</a>| <a href="http://rbet6365.com" target="_blank">久久超碰97中文字幕</a>| <a href="http://av0333.com" target="_blank">欧美日韩三区四区</a>| <a href="http://tubcup.com" target="_blank">一色屋精品亚洲香蕉网站</a>| <a href="http://1588vip.com" target="_blank">亚洲一二三区在线观看</a>| <a href="http://fuqiba.com" target="_blank">欧美成人精品在线</a>| <a href="http://ganmabook.com" target="_blank">亚洲尤物视频在线</a>| <a href="http://7v51.com" target="_blank">欧美成人午夜</a>| <a href="http://5555547.com" target="_blank">国产一区二区三区网站</a>| <a href="http://www57669.com" target="_blank">久久综合九色九九</a>| <a href="http://www-216678.com" target="_blank">午夜精品视频在线观看</a>| <a href="http://kk8c.com" target="_blank">欧美激情一级片一区二区</a>| <a href="http://9966k.com" target="_blank">国产欧美一区二区精品性色 </a>| <a href="http://www4848xx.com" target="_blank">欧美性色综合</a>| <a href="http://www-438686.com" target="_blank">亚洲国产综合91精品麻豆</a>| <a href="http://ythbhg.com" target="_blank">欧美一区二区三区在</a>| <a href="http://mimi78.com" target="_blank">亚洲欧洲一区二区三区久久</a>| <a href="http://9e67.com" target="_blank">久久精彩免费视频</a>| <a href="http://bixiuge.com" target="_blank">国产精品久久一区二区三区</a>| <a href="http://fjnexpo.com" target="_blank">亚洲裸体视频</a>| <a href="http://hbdxzx.com" target="_blank">欧美激情成人在线视频</a>| <a href="http://jxrisen.com" target="_blank">欧美在线观看视频在线</a>| <a href="http://4915w.com" target="_blank">国产精品久久久久久久久借妻</a>| <a href="http://1390555.com" target="_blank">91久久久亚洲精品</a>| <a href="http://ll992.com" target="_blank">欧美成人国产一区二区</a>| <a href="http://xianconnector.com" target="_blank">欧美中文在线字幕</a>| <a href="http://wy77777.com" target="_blank">国产伦精品一区二区三区在线观看</a>| <a href="http://5474hu.com" target="_blank">99综合电影在线视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>