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, ......
ÏÂÃæÕâ¸ö³ÌÐòÊä³öʲô£¿
enum {false,true};
int main()
{
int i=1;
do
{
printf("%d\n",i);
i++;
if(i < 15)
continue;
}while(false);
return 0;
}
ÄãÏàÐÅô£¿ÏÂà ......
ÎÒÔÚд´úÂëµÄʱºòϲ»¶Ê¹Óú꣬²»½öʹ´úÂë¿´ÆðÀ´Õû½à£¬¶øÇÒÓúÃÁË»¹Äܼ«´óµÄ¼õÇá±àÂëµÄ¹¤×÷Á¿£¬µ«ÊÇÈç¹ûʹÓò»µ±µÄ»°£¬³öÁËÎÊÌâ²éÕÒÆðÀ´¾Í¾Í·Ç³£µÄÄÑÁË£¬ÏÂÃæµÄ×ܽá´ó²¿·ÖÊÇ´ÓÍøÉÏ¿´µ½µÄ£¬Ò²ÓÐһЩÊÇÎÒ×Ô¼ºÔÚ¹¤×÷ÖÐ×ܽá³öÀ´µÄ¡£
ºêʹÓÃÖеij£¼ûµÄ»ù´¡ÎÊÌâ
1. ·ÀÖ¹Ò»¸öÍ·Îļþ±»Öظ´°üº¬
#ifndef BOD ......
C/C++/VC++ ±äÁ¿ÃüÃû¹æÔò
ÊÇVC++µÄô£¿
4.±äÁ¿·ç¸ñ
±äÁ¿¾¡Á¿²ÉÓÃÐÙÑÀÀûÃüÃû·¨£¬Í¬Ê±½áºÏVCµÄÔÔò£»Ò»°ãÇé¿öÏ£¬±äÁ¿µÄÈ¡Ãû·½Ê½Îª£º
<scope><prefix><qualifier>
ÓйØÏîÄ¿µÄÈ«¾Ö±äÁ¿±ØÐëÓÃg_¿ªÊ¼£¬Àà³ÉÔ±±äÁ¿ÓÃm_£¬¾Ö²¿±äÁ¿Èôº¯Êý½Ï´óÔò¿É¿¼ÂÇÓÃl_ÓÃÒÔÏÔʾ˵Ã÷ÆäÊǾֲ¿±äÁ¿¡£
ǰ׺
ÀàÐÍ
ʾÀý
g_
......