dz̸CÓëC++µÄÉè¼ÆÓë±à³Ì·ç¸ñ£¨Ò»£©
Ò»Ö±ÏëдһЩ±È½ÏCºÍC++Éè¼ÆÓë±à³Ì·ç¸ñµÄÎÄ×Ö£¬ÕýºÃ½üÀ´¹¤×÷ÈÎÎñ²»¶à£¬Äܹ»ÓÐʱ¼äÖØÐÂÕûÀíÒ»ÏÂ×Ô¼ºËùѧµÄ¶«¶«£¬ÓÚÊDZã¾ö¶¨¿ªÊ¼Ð´Õâ¸öÌâÄ¿£¬¶øÄ¿µÄ½ö½öÖ»ÊÇ´òËãÄܾÍÕâ¸ö»°ÌâºÍ´ó¼ÒÌÖÂÛÌÖÂÛ£¬Å×שÒýÓñ¡¢Ôö³¤¸öÈ˵ļûʶ¡£
Ê×ÏÈÏë˵Ã÷һϣ¬¸öÈËÊÇC++Éè¼Æ¡¢±à³Ì·ç¸ñµÄ¼á¶¨Óµ»¤Õߣ¬ËùÒÔÎҵĹ۵ãÄÑÃâ´øÓиöÈËµÄÆ«ºÃ£¬Èç¹ûÄú²»ÔÞͬ£¬Ò²ÇëÅúÆÀÖ¸Õý¡£ºÃÁË£¬ÑÔ¹éÕý´«£¬¸öÈ˾õµÃCÓëC++Éè¼ÆÓë±à³Ì·ç¸ñ×î±¾ÖʵIJ»Í¬ÊÇ£ºCÒÔº¯Êý¼äµÄµ÷ÓùØÏµÎªºËÐÄ£¨ËùÒÔCÓïÑÔ±»³ÆÎªÃæÏò¹ý³ÌʽÓïÑÔ£©£¬¶øC++ÒÔ³ÌÐòÔªËØ£¨¶ÔÏ󣩼äµÄ¹ØÏµºÍ½á¹¹ÎªºËÐÄ£¨ËùÒÔC++±»³ÆÎªÃæÏò¶ÔÏóµÄÓïÑÔ£©——PS£ºÈç¹ûÄúÄõ½Ò»¶Ñ´úÂëºóÊ×ÏÈÈ¥¿´¸÷¸öº¯ÊýµÄʵÏÖ£¬²¢ÊÔͼŪ¶®ËüÃÇÊÇÈçºÎÏ໥µ÷Óõģ¬ÄÇÖ¤Ã÷ÄúÊÇһλµäÐ͵ÄC³ÌÐòÔ±£»¶øÈç¹ûÄúÊ×ÏÈÊÇÈ¥²é¿´ËùÓÐÍ·Îļþ£¬²¢ÊÔͼ¸ã¶®Ã¿¸öÀàÖ®¼äµÄ¹ØÏµ£¬ÄÇÖ¤Ã÷ÄúÊÇһλµäÐ͵ÄC++³ÌÐòÔ±¡£
¾Ù¸ö¼òµ¥µÄÀý×Ó£¬¶ÔÓÚÒ»ÃûC³ÌÐòÔ±£¬µ±ËûÐèҪʵÏÖijÖÖ״̬»úʱ£¬Í¨³£ÊÇʹÓÃÏÂÃæÕâÑùµÄ´úÂ룺
if (0 == CheckState(...) ) // ÅжÏij¸öº¯ÊýµÄ·µ»ØÖµÊÇ·ñΪ0
DoSomething(...); // µ÷ÓÃij¸öº¯Êý
else
DoSomethingElse(...); // µ÷Óô¦ÀíÆäËüÇé¿öµÄÁíÒ»¸öº¯Êý
»òÊÇÕâÑù£º
switch( CheckState(...) ) // ¸ù¾Ýij¸öº¯ÊýµÄ·µ»ØÖµ×ö²»Í¬µÄ¶¯×÷
{
case 0:
DoSomething1(...);
break;
case 1:
DoSomething2(...);
break;
case -1:
DoSomething3(...);
break;
default:
DoSomethingElse(...);
}
£¨PS£ºÒÔÉÏÕâЩ´úÂë±ØÈ»ÊÇÔÚÔ´ÎļþµÄij¸öº¯ÊýÖгöÏֵģ¬ÕâÒ²½âÊÍÁËΪʲôC³ÌÐòÔ±×ÜÊÇÏÈ¿´Ô´Îļþ¡££©¶øÒ»¸öC++³ÌÐòÔ±Ôò¿ÉÄܲ»Õâô×ö£¬ÕâÀïC++³ÌÐòÔ±¶àÁËÒ»ÖÖÑ¡Ôñ——ʹÓÃÐ麯Êý£º
//ÉêÃ÷Ò»¸ö½Ó¿Ú
struct IStateMachine
{
virtual void DoSomething(...) = 0;
};
// Õë¶Ô״̬0Ìṩһ¸öʵÏÖÀà
struct CDoSomethingForState0: IStateMachine
{
virtual void DoSomething(...);
}
// Õë¶Ô״̬1Ìṩһ¸öʵÏÖÀà
struct CDoSomethingForState1: IStateMachine
{
virtual void DoSomething(...);
};
// Õë¶ÔÆäËü״̬Ìṩһ¸öʵÏÖÀà
struct CDoSomethingForOhterStates: IStateMachine
{
virtual void DoSomething(...);
};
// ʹÓÃÒ»¸ö¹¤³§º¯ÊýÀ´·µ»ØÌض¨µÄʵÏÖ¶ÔÏó
IStateMachine * CheckState(...);
//
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
żȻµÄÒòËØ£¬¶ÔconstÀ´Á˵ãÐËȤ£¬×öÁËÒ»ÏÂʵÑ飺
1. Óï·¨£ºconst¡¢Ö¸Õë
ÔÚgccÖУ¬ ¶ÔÓÚCÓïÑÔ£¬ÏÂÃæµÄÓï¾äÊǺϷ¨µÄ£º
const int a=0;
int *p=&a;
¶øC++ÖУ¬ÐèÒªÊÖ¹¤Ç¿ÖÆ×ª»»²ÅÄܱàÒëͨ¹ý£º
......
/*
* XMLTool.cpp ÅäÖÃÎļþ½âÎö¶¯Ì¬¿â×ÊÔ´Îļþ
* Ö÷ÒªÊä³öº¯Êý½Ó¿Ú·Ö±ðʵÏÖ¶ÔÅäÖÃÎļþµÄ¶ÁÈ¡ºÍдÈ룬Õë¶Ô½á¹û¼¯µÄ¸´ÖÆÇå¿Õ£¬ºÍÁ½¸ö×Ö·û´®´¦Àíº¯Êý
* ¶ÁÈ¡ÅäÖÃÎļþ½Ó¿Ú £ºint ReadXMLFile(XML_Node_Vector *XmlNodeVector, string filepath);
* Ð´È ......
The meaning of the c in calloc was vividly discussed in comp.lang.c in October 2000 (see here), with both clear (because, unlike malloc, calloc clears the memory it returns) and count (because, unlike malloc, calloc is passed a count of elements to allocate) suggested as possible explanations, howev ......