C/C++ÎÊ´ð(3)£º¹ØÓÚ¹¹ÔìºÍÎö¹¹º¯ÊýʹÓöà̬
ÎÊ£º
ÔÚ¹¹Ôì»òÎö¹¹ÆÚ¼äÄÜʹÓÃÐ麯ÊýÂð£¿
´ð£º
ÄÜ£¬µ«×îºÃ²»ÒªÕâô×ö¡£
ǰÁ½ÌìÔÚ¹«Ë¾ÓÎÏ·ÏîÄ¿¿ª·¢¹ý³ÌÖУ¬ÔÚÎö¹¹º¯ÊýÖв»Ð¡Ðĵ÷ÓÃÁËÐ麯Êý£¬¶øÇÒ»¹ÊǸö´¿Ð麯Êý¡£
ÒòΪһֱÊÇÔÚRleaseģʽϹ¤×÷µÄ£¬µ¼ÖÂϵͳֱ½ÓÖÕÖ¹¿Í»§¶Ë£¬ËäÈ»¿ØÖÆÌ¨ÓдòÓ¡Õâ¸ö´íÎ󣬵«ÖÕֹ̫¿ì£¬Ò²Ã»¿´µ½¡£Çл»ÔÚDebugϵ÷ÊÔ£¬Ôò»á±¨R6025 -pure virtual function call µÄÔËÐÐʱ´íÎó¡£
µ±È»£¬Èç¹ûÔÚÎö¹¹º¯ÊýÖÐÖ±½Óµ÷Óô¿Ð麯Êý£¬±àÒëÆ÷Ò²²»Éµ(VS2008)£¬Ëü²»»áÈñàÒëͨ¹ýµÄ£¬ÒòΪ´¿Ð麯ÊýûÓÐʵÏÖÌ壬ËùÒÔ»á³öÏÖunresolved external symbolÁ´½Ó´íÎó¡£µ«ÊÇͨ¹ýÆäËûº¯Êý¼ä½Óµ÷Ó㬱àÒëÆ÷¾Í²»»á·¢ÏÖ£¬¾Í»á³ö´í¡£
Ö±½Ó¿´ÏÂÃæÕâ¸öÀý×Ó°É
class TestEffect
{
public:
TestEffect(){}
~TestEffect(){ release(); }
void release(){ clear(); }
virtual void clear() = 0;
};
class SubTestEffect: public TestEffect
{
public:
SubTestEffect(){}
~SubTestEffect(){}
virtual void clear(){ printf( "SubTestEffect::clear() called\n" }
};
ÕâÑùnew³öÀ´Ò»¸öSubTestEffectµÄʵÀý£¬ÔÚdeleteʱ¾Í»á±ÀÀ£¡£
¾ÍÕâ¸öÀý×Ó£¬ËµÒ»Ï¹ØÓÚ¹¹ÔìºÍÎöÔ캯ÊýÖÐʹÓöà̬
Ò»¡¢¹¹ÔìÅÉÉúÀà¶ÔÏóʱ£¬Ê×Ïȵ÷ÓûùÀ๹Ô캯Êý£¬Ö´ÐлùÀà³õʼ»¯¡£¶ø¶ÔÏóµÄÅÉÉúÀಿ·ÖÊÇδ³õʼ»¯µÄ¡£Êµ¼ÊÉÏ´Ëʱ¶ÔÏó»¹²»ÊÇÒ»¸öÅÉÉúÀà¶ÔÏó¡£
¶þ¡¢Îö¹¹ÅÉÉúÀà¶ÔÏóʱ£¬Ê×ÏÈÎö¹¹ËüµÄÅÉÉúÀಿ·Ö£¬È»ºó°´ÕÕÓë¹¹Ôì˳ÐòµÄÄæÐòµ÷ÓÃËüµÄ»ùÀàÎö¹¹¡£
ÕâÁ½ÖÖÇé¿öÏ£¬¶ÔÏó¶¼²»ÊÇÍêÕûµÄ¡£ÎªÁËÊÊÓ¦ÕâÖÖ²»ÍêÕû£¬±àÒëÆ÷½«¶ÔÏóµÄÀàÐÍÊÓΪÔÚ¹¹Ôì»òÎöÔìÆÚ¼ä·¢ÉúÁ˱仯¡£ÔÚ»ùÀ๹Ôì»òÎö¹¹º¯ÊýÖУ¬½«ÅÉÉúÀà¶ÔÏóµ±×÷»ùÀàÀàÐͶÔÏóÀ´¶Ô´ý¡£
¹¹Ôì»òÎö¹¹ÆÚ¼äµÄ¶ÔÏóÀàÐͶÔÐ麯ÊýµÄ°ó¶¨ÓÐÓ°Ïì¡£
ËùÒÔÈç¹ûÔÚ¹¹Ôì»òÎö¹¹º¯ÊýÖÐʹÓöà̬£¬ÔòÔËÐеÄÊÇΪ¹¹Ô캯Êý»òÎö¹¹º¯Êý×ÔÉíÀàÐͶ¨ÒåµÄ°æ±¾¡£ÎÞÂÛÊÇÓɹ¹Ô캯Êý£¨»òÎö¹¹º¯Êý£©Ö±½Óµ÷ÓÃÐ麯Êý£¬»òÕß´Ó¹¹Ô캯Êý£¨»òÎö¹¹º¯Êý£©Ëùµ÷Óõĺ¯Êý¼ä½Óµ÷ÓÃÐ麯Êý£¬¶¼Ó¦ÓÃÕâÖְ󶨡£
¡¶Effective C++¡·µÚÈý°æÖÐÌõ¿î09,Scott Meyers¾ÍÃ÷È·Ö¸³ö£º¾ö²»ÔÚ¹¹Ôì»òÎöÔì¹ý³ÌÖе÷ÓÃvirtualº¯Êý£¬½²µÄÏêϸÇÒȨÍþ¡£ÓÐÈË˵C++³ÌÐòÔ±·ÖΪÁ½À࣬¶Á¹ýEffective C++µÄºÍû¶Á¹ýµÄ£¬ºÜÒź¶£¬ÎÒÊǺóÕß¡£
¸æ½ë×Ô¼º²»ÒªÔÚ¹¹Ôì»òÎö¹¹¹ý³ÌÖе÷ÓÃÐ麯Êý¡£
×¢Ò⣺“²»Òª”ºÍ“²»ÄÜ”£¬ÔÊÐíµ÷Ó㬵«¿ÉÄÜ´ï²»µ½
Ïà¹ØÎĵµ£º
ÉÏÆª½éÉÜÁËÓÃC++µ÷ÓÃJavaScript£¬ÕâÆª·´¹ýÀ´ËµËµJSµ÷C++£¬ÕâÑùJSºÍC++¹µÍ¨µÄ;¾¶¾ÍÍêÕûÁË¡£
Ê×ÏÈ£¬ÊµÏÖÒ»¸öIDispatch½Ó¿Ú£¬µ±JSµ÷ÓÃC++º¯Êýʱ£¬ÏµÍ³»áµ÷ÓÃGetIDsOfNamesÀ´Óú¯ÊýÃûÈ¡µÃº¯ÊýµÄDISPID£¬È»ºóµ÷ÓÃInvokeÍê³ÉÕæÕýµÄµ÷Óã¬ÐèҪעÒâµÄÊÇInvokeµÄpDispParamsÖеIJÎÊýÊǵ¹ÐòµÄ¡£´úÂëÈçÏ£º
class CExtenalDis ......
Part I ÈçºÎÉÏ·
1. vi, vimÊDZàÒëÆ÷ô£¿
vi means visual editor£¬ÊÇÈí¼þÊÀ½çµÚÒ»¸öÈ«ÆÁÄ»±à¼Æ÷£¬×î³õµÄ×÷ÕßÊÇÏÖÔÚSun microsystemµÄBill Joy¡£
vim means Vi IMproved£¬¿ÉÒÔ¿´×÷ÊÇÔöÇ¿µÄvi¡£
ºÜ²»ÐÒ£¬ËûÃǶ¼²»ÊDZàÒëÆ÷£¬Èç¹ûÄãÒѾдºÃÁËfirst.c£¬ÄÇô²»ÄÜÖ¸ÍûviÃǽ«ÄãµÄÔ´´úÂë±ä³ÉÖ´ÐгÌÐò¡£
2. gcc, ......
±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û¡£
¡¡¡¡Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔõÑùµÄ³Ì¶È£¬Î ......
ͻ񻣼
±¾ÎÄ´Ó½éÉÜ»ù´¡¸ÅÄîÈëÊÖ£¬Ì½ÌÖÁËÔÚC/C++ÖжÔÈÕÆÚºÍʱ¼ä²Ù×÷ËùÓõ½µÄÊý¾Ý½á¹¹ºÍº¯Êý£¬²¢¶Ô¼ÆÊ±¡¢Ê±¼äµÄ»ñÈ¡¡¢Ê±¼äµÄ¼ÆËãºÍÏÔʾ¸ñʽµÈ·½Ãæ½øÐÐÁ˲ûÊö¡£±¾ÎÄ»¹Í¨¹ý´óÁ¿µÄʵÀýÏòÄãչʾÁËtime.hÍ·ÎļþÖÐÉùÃ÷µÄ¸÷ÖÖº¯ÊýºÍÊý¾Ý½á¹¹µÄÏêϸʹÓ÷½·¨¡£
¹Ø¼ü×Ö£ºUTC£¨ÊÀ½ç±ê׼ʱ¼ä£©£¬Calendar Time£¨ÈÕÀúʱ¼ä£©£¬epoch ......