| ÂÛ̳ע²á| ¼ÓÈëÊÕ²Ø | ÉèΪÊ×Ò³| RSS
Google
Äúµ±Ç°µÄλÖãºÊ×Ò³ > LinuxƵµÀ > Linux¿ª·¢Çø > Èí¼þ¿ª·¢

C++×Ô¶¯»¯(Ä£°åÔª)±à³Ì»ù´¡ÓëÓ¦ÓÃ

ʱ¼ä£º2006-06-16 11:29:29  À´Ô´£ºÖйúITʵÑéÊÒ  ×÷ÕߣºLinuxÁªÃËÊÕ¼¯
print();vDTLinuxÁªÃË
}vDTLinuxÁªÃË
return 0;vDTLinuxÁªÃË
}vDTLinuxÁªÃË
#endif//CODE2vDTLinuxÁªÃË
//////////////////////////////////////vDTLinuxÁªÃË
//¸Ã³ÌÐòµÄÔËÐнá¹ûÈçÏ£ºvDTLinuxÁªÃË
/*****************************************************vDTLinuxÁªÃË
A B C vDTLinuxÁªÃË
1 2 3 4 vDTLinuxÁªÃË
1.1 2.2 3.3 4.4 vDTLinuxÁªÃË
A B C vDTLinuxÁªÃË
(1.1,0.1) (2.2,0.2) (3.3,0.3) (4.4,0.4) vDTLinuxÁªÃË
ÐÜ´ºÀ× ÐÜè ¹ú±¦ ¿ªÐÄ pandaxcl vDTLinuxÁªÃË
************************************************/vDTLinuxÁªÃË
////////////////////////////////////////////////////////vDTLinuxÁªÃË
vDTLinuxÁªÃË
#if 0vDTLinuxÁªÃË
vDTLinuxÁªÃË
´ÓCODE2ÖпÉÒÔ¿´³ö£¬×Ô¶¯»¯µÄÀàClass¿ÉÒÔ¸ù¾Ý´«µÝµÄÀàÐÍ´®×Ô¶¯µÄµ÷Õû³ÉÔ±±äÁ¿ÊývDTLinuxÁªÃË
Á¿£¬Í¬Ê±Ò²»á×Ô¶¯µ÷Õûprint³ÉÔ±º¯ÊýµÄ¹¦ÄÜ¡£ÆäÖкóÕßÊDZ¾ÎÄËù½éÉܵķ½·¨£¬Ò²ÊÇÄ£°åÔªvDTLinuxÁªÃË
º¯ÊýÓÃÀ´½øÐÐ×Ô¶¯»¯±à³ÌµÄ¹Ø¼ü¡£Í¨¹ýprint³ÉÔ±º¯ÊýµÄÑÝʾ£¬ÕâÀïÄãÊÇ·ñÓкܶàµÄÏë·¨ÄØvDTLinuxÁªÃË
£¿ºÇºÇ:)£¬Êǰ¡¼ÈÈ»¿ÉÒÔÈóÉÔ±º¯ÊýÒ²Äܹ»ÊµÏÖ×Ô¶¯»¯£¬ÄÇô²ÉÓÃC++Ä£°åÔª±àд×Ô¶¯»¯µÄvDTLinuxÁªÃË
ÀཫÊÇÒ»¼þ¿ÉÐеÄÊÂÇ飬Õâ¾Í¿´¸÷λµÄ·¢»ÓÁË¡£vDTLinuxÁªÃË
vDTLinuxÁªÃË
Å×שÒýÓñµÄ¹ý³Ì»ù±¾ÉÏÒѾ­Í걸£¬½ÓÏÂÀ´¾ÍÊǽéÉÜÒ»ÏÂΪʲôÐèÒª×Ô¶¯»¯±à³ÌµÄ±³¾°vDTLinuxÁªÃË
ÁË¡£ÎÒÃÇÔÚ±àд³ÌÐò´úÂëµÄʱºòͨ³£Êǽ«¸÷ÖÖ²»Í¬µÄ¹¦ÄÜ·Ö³ÉÒ»¸ö¸öµÄСģ¿é£¬µ±Ò»¸ö¸övDTLinuxÁªÃË
µÄÄ£¿é±àдºÃÁËÖ®ºó¾Í¿ÉÒÔÒÔ¿âµÄÐÎʽÌṩ¸ø¿Í»§¶ËʹÓã¬Í¬Ê±»¹ÐèÒª¸½´øÒ»¸ö·Ç³£ÏêϸvDTLinuxÁªÃË
µÄÎĵµ£¬ÓÃÀ´ËµÃ÷ÈçºÎʹÓÃÕâ¸ö¿â¡£Í¨³£À´Ëµ£¬Ã¿Ò»¸ö¿âµÄÎĵµ¶¼ÊDz»Í¬µÄ£¬¶¼Óи÷×Ô²»vDTLinuxÁªÃË
ͬµÄÌØÊâÒªÇó£¬Õâ¾ÍÒª¿Í»§¶Ë·Ç³£ÊìϤËùʹÓõĿ⣬µ«ÊÇͨ³£À´Ëµ£¬¿âµÄ±àдÕ߷dz£ÊìϤvDTLinuxÁªÃË
×Ô¼º±àдµÄ¿â£¬¶ø¿âµÄʹÓÃÕßÈ´²»ÊìϤÕâ¸ö¿â¡£ÔÚÕâÀï½éÉܵÄ×Ô¶¯»¯±à³Ì¾ÍÊǽ«ÕâÖÖì¶ÜvDTLinuxÁªÃË
½øÐлº½âµÄÒ»ÖÖŬÁ¦·½Ê½¡£¿âµÄ±àдÕß½«¿âµÄʹÓùæÔò¾¡¿ÉÄܵıàÂëµ½¿âÖУ¬Áô¸ø¿âµÄʹvDTLinuxÁªÃË
ÓÃÕßÒ»¸öͨÓöø¼òµ¥µÄʹÓýçÃæ£¬½«ÄÇÐ©ÌØÊâµÄ¹æÔòÁô¸ø¿âµÄ±àдÕß¶ø²»ÊÇ¿âµÄʹÓÃÕß²»vDTLinuxÁªÃË
½ö¿ÉÒÔ½µµÍ¿âµÄʹÓÃÃż÷£¬Í¬Ê±»¹¿ÉÒÔ´ó´ó¼õÉÙʹÓÿâµÄ¹ý³ÌÖз¢Éú´íÎóµÄ¿ÉÄÜÐÔ¡£vDTLinuxÁªÃË
vDTLinuxÁªÃË
ÒÔÉÏÊÇÎҵĹ۵㣬½ö¹©²Î¿¼¡£vDTLinuxÁªÃË
vDTLinuxÁªÃË
±¾ÕÂÍê¡£vDTLinuxÁªÃË
vDTLinuxÁªÃË
´Ó±¾ÎÄ»¹¿ÉÒÔ¿´³ö£¬ÎÄÖÐʵ¼ÊÉÏ»¹ÁôÏÂÁËÒ»¸öÎÊÌ⣺×Ô¶¯Éú³É´úÂëʹÓõÄÀàÐÍ´®Öв»vDTLinuxÁªÃË
ÔÊÐíÓÐÖØ¸´ÀàÐͳöÏÖ£¬ÕâÒ»µãʵ¼ÊÉÏÊÇÒ»¸öȱÏÝ£¬½«»áÔÚÏÂÒ»ÕÂÖнâ¾ö¡£µ«ÊÇ×÷ΪԭÀíÀ´vDTLinuxÁªÃË
½²£¬±¾Õ½éÉܵķ½·¨ÔÚÏÂÒ»ÕÂÀïÃæÓÃÀ´½â¾öÖØ¸´ÀàÐ͵ÄÀàÐÍ´®Éú³É´úÂëµÄʱºòÒ²ÐèÒª²ÉÓÃvDTLinuxÁªÃË
ÁËÕâÀïµÄ·½·¨£¬ËùÒԷdz£ÓбØÒªÏÈÔÚÕâÀï½éÉÜÕâÖÖ·½·¨¡£ÔÚÏÂÒ»ÕÂÀïÃæ½«»áÌÖÂÛÈçºÎʹÓÃvDTLinuxÁªÃË
±¾Õ½éÉܵIJ»º¬Öظ´ÀàÐ͵ÄÀàÐÍ´®Éú³É´úÂëµÄ¼¼ÊõÓÃÀ´½â¾öº¬ÓÐÖØ¸´ÀàÐ͵ÄÀàÐÍ´®Éú³É´úvDTLinuxÁªÃË
ÂëµÄÎÊÌâ¡£×¢ÒâÏÂÒ»ÕÂÖвÉÓõķ½·¨ºÍLoki¿âÖвÉÓõķ½·¨¿É²»ÏàͬŶ:)£¨¾´Çë¹Ø×¢!£©vDTLinuxÁªÃË
vDTLinuxÁªÃË
δÍê¡£´ýÐø...vDTLinuxÁªÃË
vDTLinuxÁªÃË
#endifvDTLinuxÁªÃË
#ifdef CODE_NOTE//¸½Â¼£º±¾ÎÄʹÓõÄmeta.hÎļþÄÚÈÝvDTLinuxÁªÃË
#pragma oncevDTLinuxÁªÃË
namespace pandaxcl{vDTLinuxÁªÃË
/////////////////////////////////////////////////////////vDTLinuxÁªÃË
template vDTLinuxÁªÃË
struct IFvDTLinuxÁªÃË
{vDTLinuxÁªÃË
typedef Then result;//½«ThenÀàÐÍ×÷ΪÌõ¼þÎªÕæµÄ·µ»ØÖµ
<:length<:string,
<:string><:string><:string><:string><:string>£¨·µ»ØÖµÎªÀàÐÍ£©vDTLinuxÁªÃË
};vDTLinuxÁªÃË
templatevDTLinuxÁªÃË
struct IFvDTLinuxÁªÃË
{vDTLinuxÁªÃË
typedef Else result;//½«ElseÀàÐÍ×÷ΪÌõ¼þΪ¼ÙµÄ·µ»ØÖµ
<:length<:string,
<:string><:string><:string><:string><:string>£¨·µ»ØÖµÎªÀàÐÍ£©vDTLinuxÁªÃË
};vDTLinuxÁªÃË
///////////////////////////////////////////////////////vDTLinuxÁªÃË
////////////////////////////////////////////////////////vDTLinuxÁªÃË
////¼ÓÈëÒ»¸öÍ⸲²ãÀ´´«µÝ¶îÍâµÄÄ£°å²ÎÊývDTLinuxÁªÃË
template class Function,size_t start,size_t finish,size_t step>vDTLinuxÁªÃË
struct LOOPvDTLinuxÁªÃË
{vDTLinuxÁªÃË
//ΪÁËÄܹ»ÕýÈ·µÄ¼ÆËã³öʵ¼ÊµÄÑ­»·ÖÕÖ¹±äÁ¿£¬ÐèÒª¶Ô¸ø¶¨µÄÖÕÖ¹±äÁ¿vDTLinuxÁªÃË
//½øÐмÆË㣬ÒÔÂú×ãÕýÈ·µÄÑ­»·ÓïÒåvDTLinuxÁªÃË
enum{real_finish=(finish/step*step+start)};vDTLinuxÁªÃË
static void execute()vDTLinuxÁªÃË
{vDTLinuxÁªÃË
LOOP_BODY::execute();vDTLinuxÁªÃË
}vDTLinuxÁªÃË
//ÏÂÃæµÄÕâ¸öÄ£°åº¯ÊýÊÇΪÁËÄܹ»ÊµÏÖ¾²Ì¬´úÂëºÍ¶¯Ì¬´úÂëÁ¬½ÓvDTLinuxÁªÃË
template vDTLinuxÁªÃË
static void execute(EnvironmentType&e)vDTLinuxÁªÃË
{vDTLinuxÁªÃË
LOOP_BODY::execute(e);vDTLinuxÁªÃË
}vDTLinuxÁªÃË
private:vDTLinuxÁªÃË
//ÒýÈëÁËÒ»¸ö²¼¶ûÐ͵ÄÄ£°å²ÎÊýÓÃÀ´È·¶¨Ñ­»·µÄÖÕÖ¹Ìõ¼þvDTLinuxÁªÃË
template struct LOOP_BODYvDTLinuxÁªÃË
{vDTLinuxÁªÃË
static void execute()vDTLinuxÁªÃË
{vDTLinuxÁªÃË
LOOP_BODYstart)>::execute();vDTLinuxÁªÃË
Function::execute();vDTLinuxÁªÃË
}vDTLinuxÁªÃË
//ÏÂÃæµÄÕâ¸öÄ£°åº¯ÊýÊÇΪÁËÄܹ»ÊµÏÖ¾²Ì¬´úÂëºÍ¶¯Ì¬´úÂëÁ¬½ÓvDTLinuxÁªÃË
template vDTLinuxÁªÃË
static void execute(EnvironmentType&e)vDTLinuxÁªÃË
{vDTLinuxÁªÃË
LOOP_BODYstart)>::execute(e);vDTLinuxÁªÃË
Function::execute(e);vDTLinuxÁªÃË
}vDTLinuxÁªÃË
};vDTLinuxÁªÃË
//Ñ­»·µÄÖÕÖ¹Óï¾ä£¬Í£Ö¹µÝ¹éÒÔ½áÊøÑ­»·vDTLinuxÁªÃË
template struct LOOP_BODYvDTLinuxÁªÃË
{vDTLinuxÁªÃË
static void execute(){}vDTLinuxÁªÃË
//ÏÂÃæµÄÕâ¸öÄ£°åº¯ÊýÊÇΪÁËÄܹ»ÊµÏÖ¾²Ì¬´úÂëºÍ¶¯Ì¬´úÂëÁ¬½ÓvDTLinuxÁªÃË
template vDTLinuxÁªÃË
static void execute(EnvironmentType&e){}vDTLinuxÁªÃË
};vDTLinuxÁªÃË
};vDTLinuxÁªÃË
//ΪÁËÄ£°å»¯±ØÐ뽫ԭÀ´µÄÊä³öº¯Êý×ö³ÉÒ»¸öÄ£°å½á¹¹ÌåvDTLinuxÁªÃË
//template struct FunctionvDTLinuxÁªÃË
//{vDTLinuxÁªÃË
// static void execute()vDTLinuxÁªÃË
// {vDTLinuxÁªÃË
// //ÄãµÄ´úÂëÔÚÕâÀï±àдvDTLinuxÁªÃË
// }vDTLinuxÁªÃË
//};vDTLinuxÁªÃË
//////////////////////////////////////////////////vDTLinuxÁªÃË
///////////////////////////////////////////////////vDTLinuxÁªÃË
//consµÄʵÏÖ£¬²ÉÓúÍSTLÀàËÆµÄÀàÐÍÃüÃû·½Ê½vDTLinuxÁªÃË
template vDTLinuxÁªÃË
struct consvDTLinuxÁªÃË
{vDTLinuxÁªÃË
typedef FirstType first_type;vDTLinuxÁªÃË
typedef SecondType second_type;vDTLinuxÁªÃË
};vDTLinuxÁªÃË
struct null_type;//ÀàÐÍ´®ÖÕ½á·ûvDTLinuxÁªÃË
//ÏÂÃæÊÇÁ½¸öΪÁËʵÏÖ¾²Ì¬ÀàÐÍÑ­»·ËùÐèÒªµÄ¾²Ì¬Ôªº¯ÊývDTLinuxÁªÃË
//lengthÔªº¯ÊýµÄʵÏÖvDTLinuxÁªÃË
templatestruct length;vDTLinuxÁªÃË
template<>struct lengthvDTLinuxÁªÃË
{//·µ»ØÖµÎªÕûÊý£¬ÃüÃûΪvaluevDTLinuxÁªÃË
enum{value=0};vDTLinuxÁªÃË
};vDTLinuxÁªÃË
templatevDTLinuxÁªÃË
struct length >vDTLinuxÁªÃË
{//·µ»ØÖµÎªÕûÊý£¬ÃüÃûΪvaluevDTLinuxÁªÃË
enum{value=1+length::value};vDTLinuxÁªÃË
};vDTLinuxÁªÃË
//typeÔªº¯ÊýµÄʵÏÖvDTLinuxÁªÃË
templatestruct type;vDTLinuxÁªÃË
templatevDTLinuxÁªÃË
struct type,0>vDTLinuxÁªÃË
{//·µ»ØÖµÎªÀàÐÍ£¬ÃüÃûΪresultvDTLinuxÁªÃË
typedef FirstType result;vDTLinuxÁªÃË
};vDTLinuxÁªÃË
templatevDTLinuxÁªÃË
struct type,i>vDTLinuxÁªÃË
{//·µ»ØÖµÎªÀàÐÍ£¬ÃüÃûΪresultvDTLinuxÁªÃË
typedef typename type::result result;vDTLinuxÁªÃË
};vDTLinuxÁªÃË
////////////////////////////////////////////////////////////vDTLinuxÁªÃË
//ÏÂÃæÊÇʵÏÖ´úÂë×Ô¶¯Éú³ÉµÄÄ£°åÔªº¯Êý£¬Ö÷Òª²Î¿¼ÁËLokiµÄ´úÂëvDTLinuxÁªÃË
//ΪÁ˳·ÏúºÍÖØ×ö¿âµÄ¶ÀÁ¢ÐÔ£¬½«¸Ã¹¦ÄÜ´ÓLoki¿âÖÐÌáÈ¡³öÀ´vDTLinuxÁªÃË
templateclass Unit>vDTLinuxÁªÃË
struct scatter : public UnitvDTLinuxÁªÃË
{vDTLinuxÁªÃË
};vDTLinuxÁªÃË
templateclass Unit>vDTLinuxÁªÃË
struct scatter,Unit>vDTLinuxÁªÃË
: public scattervDTLinuxÁªÃË
, public scattervDTLinuxÁªÃË
{vDTLinuxÁªÃË
typedef cons cons_type;vDTLinuxÁªÃË
};vDTLinuxÁªÃË
//ÏÂÃæµÄnull_type²Î¿´Ç°Ò»ÕÂÖеĴúÂëvDTLinuxÁªÃË
templateclass Unit>vDTLinuxÁªÃË
struct scattervDTLinuxÁªÃË
{vDTLinuxÁªÃË
};vDTLinuxÁªÃË
//////////////////////////////////////////////////vDTLinuxÁªÃË
}//namespace pandaxcl{vDTLinuxÁªÃË
#endif//CODE_NOTE//¸½Â¼
#if 0vDTLinuxÁªÃË
vDTLinuxÁªÃË
ÔÚÉÏһƪÎÄÕÂÀïÃæÌÖÂÛÁËC++ÀïÃæµÄ´úÂëÉú³É¼¼Êõ£¬Ê¹ÓõÄÊÇscatter£¬²»¹ýÉÏһƪÎÄvDTLinuxÁªÃË
ÕÂÀïÃæÒ²Ìáµ½ÁË£¬Ç°Ò»ÆªÎÄÕÂÀïÃæÌÖÂ۵ĴúÂëÉú³ÉÄ£°åscatterʹÓõÄÀàÐÍ´®¾ø¶Ô²»ÔÊÐívDTLinuxÁªÃË
ÖØ¸´¡£ÆäʵÉÏһƪÖеÄscatterʹÓÃÓÉÖØ¸´µÄÀàÐ͵ÄÀàÐÍ´®Ò²ÊÇÄܹ»Õý³£Éú³É´úÂëµÄ£¬²»vDTLinuxÁªÃË
¹ý²úÉúµÄ´úÂëÈ´²»Äܽ«ÀàÐÍÖØ¸´µÄ±äÁ¿·Ö±æ³öÀ´£¬ÕâÑùÉú³ÉµÄ´úÂë¾ÍûÓÐÁËʲôʵ¼ÊÒâÒåvDTLinuxÁªÃË
£¬ËùÒÔÔÚÕâÒ»ÕÂÖн«Òª½â¾öµÄÎÊÌâÊÇ£ºÖØÐ±àдһ¸ö¿ÉÒÔʹÓÃÖØ¸´ÀàÐ͵ÄÀàÐÍ´®Éú³É´úÂëvDTLinuxÁªÃË
£¬²¢ÇÒÄܹ»²ÉÓÃÒ»¶¨µÄ·½·¨½«ÕâЩÉú³ÉµÄ±äÁ¿·Ö±æ³öÀ´¡£vDTLinuxÁªÃË
vDTLinuxÁªÃË
ÄÇô¸ÃÈçºÎ±àдÕâÀïÐèÒªµÄ´úÂëÄØ£¿ÉÏÒ»ÕÂÀïÃæµÄscatter¼ûÏÂÃæµÄ´úÂ룺vDTLinuxÁªÃË
vDTLinuxÁªÃË
#endifvDTLinuxÁªÃË
#ifdef CODE_NOTEvDTLinuxÁªÃË
templateclass Unit>vDTLinuxÁªÃË
struct scatter : public UnitvDTLinuxÁªÃË
{vDTLinuxÁªÃË
};vDTLinuxÁªÃË
templateclass Unit>vDTLinuxÁªÃË
struct scatter,Unit>vDTLinuxÁªÃË
: public scattervDTLinuxÁªÃË
, public scattervDTLinuxÁªÃË
{vDTLinuxÁªÃË
typedef cons cons_type;vDTLinuxÁªÃË
};vDTLinuxÁªÃË
templateclass Unit>vDTLinuxÁªÃË
struct scattervDTLinuxÁªÃË
{vDTLinuxÁªÃË
};vDTLinuxÁªÃË
#endif//CODE_NOTEvDTLinuxÁªÃË
#if 0vDTLinuxÁªÃË
vDTLinuxÁªÃË
ËäÈ»ÉÏÃæµÄ´úÂëÉú³É»úÖÆÉú³ÉµÄÖØ¸´ÀàÐ͵ĴúÂë²»Äܹ»Í¨¹ý¾²Ì¬×ªÐÍ(static_cast)·ÖvDTLinuxÁªÃË
±æ³öÀ´£¬µ«ÊÇÉÏÃæµÄ´úÂëÈ´¸ø³öÁíÍâÒ»ÖÖÖØÒªµÄ˼Ï룺ʹÓò»º¬ÓÐÖØ¸´ÀàÐ͵ÄÀàÐÍ´®²ÉÓÃvDTLinuxÁªÃË
ÉÏÃæµÄ´úÂëÉú³É¼¼ÊõÉú³ÉµÄ´úÂëÈ´¿ÉÒÔʹÓþ²Ì¬×ªÐÍ(static_cast)·Ö±æ³öÀ´¡£Ç°Ò»ÕÂÀïÃævDTLinuxÁªÃË
µÄÀý×Ó¶¼²ÉÓÃÁËÕâÖÖ˼Ïë¡£ÄÇôÏÖÔÚÎÒÃǿɲ»¿ÉÒÔͬÑùʹÓÃÕâÖÖ˼Ïë±àд³öÒ»¸ö¿ÉÒÔʹÓÃvDTLinuxÁªÃË
ÖØ¸´ÀàÐ͵ÄÀàÐÍ´®Éú³É´úÂ룬²¢ÇÒÄܹ»Í¨¹ý¾²Ì¬×ªÐÍ(static_cast)·½·¨½«ÕâЩÉú³ÉµÄ±äÁ¿vDTLinuxÁªÃË
·Ö±æ³öÀ´ÄØ£¿´ð°¸Êǿ϶¨µÄ£¬ÔÚÕâÀïͬÑùÊDzÉÓÃÇ°ÃæËùÌÖÂ۵Ķà¼ÓÒ»²ã°ü¹üµÄ·½·¨À´ÊµÏÖ¡
 7/11   |‹ ‹‹ 5 6 7 8 9 10 ›› ›|

À´¶¥Ò»ÏÂ
½ü»ØÊ×Ò³
·µ»ØÊ×Ò³
·¢±íÆÀÂÛ ¹²ÓÐÌõÆÀÂÛ
Óû§Ãû: ÃÜÂë:
ÑéÖ¤Âë: ÄäÃû·¢±í
Ïà¹ØÎÄÕÂ
    ÎÞÏà¹ØÐÅÏ¢
À¸Ä¿¸üÐÂ
À¸Ä¿ÈÈÃÅ