C - C++³ÌÐòÔ±³£¼ûÃæÊÔÌâÉîÈëÆÊÎö

strcpy(m_data, other.m_data); }

//¸³Öµº¯Êý String & String::operate =(const String &other) // µÃ·Öµã£ºÊäÈë²ÎÊýΪconstÐÍ {

if(this == &other) //µÃ·Öµã£º¼ì²é×Ô¸³Öµ return *this; delete [] m_data;

//µÃ·Öµã£ºÊÍ·ÅÔ­ÓеÄÄÚ´æ×ÊÔ´ int length = strlen( other.m_data );

m_data = new char[length+1]; //¼Ó·Öµã£º¶Ôm_data¼ÓNULL ÅжÏ

strcpy( m_data, other.m_data ); return *this;

//µÃ·Öµã£º·µ»Ø±¾¶ÔÏóµÄÒýÓà }

ÆÊÎö£º Äܹ»×¼È·ÎÞÎóµØ±àд³öStringÀàµÄ¹¹Ô캯Êý¡¢¿½±´¹¹Ô캯Êý¡¢¸³Öµº¯ÊýºÍÎö¹¹º¯ÊýµÄÃæÊÔÕßÖÁÉÙÒѾ­¾ß±¸ÁËC++»ù±¾¹¦µÄ60%ÒÔÉÏ£¡

ÔÚÕâ¸öÀàÖаüÀ¨ÁËÖ¸ÕëÀà³ÉÔ±±äÁ¿m_data£¬µ±ÀàÖаüÀ¨Ö¸ÕëÀà³ÉÔ±±äÁ¿Ê±£¬Ò»¶¨ÒªÖØÔØÆ俽±´¹¹Ô캯Êý¡¢¸³Öµº¯ÊýºÍÎö¹¹º¯Êý£¬Õâ¼ÈÊǶÔC++³ÌÐòÔ±µÄ»ù±¾ÒªÇó£¬-Ò²ÊÇ¡¶Effective C++¡·ÖÐÌرðÇ¿µ÷µÄÌõ¿î¡£

×ÐϸѧϰÕâ¸öÀ࣬Ìرð×¢Òâ¼Ó×¢Ê͵ĵ÷ֵãºÍ¼Ó·ÖµãµÄÒâÒ壬ÕâÑù¾Í¾ß±¸ÁË60%ÒÔÉϵÄC++»ù±¾¹¦£¡

ÊÔÌâ8£ºÇë˵³östaticºÍconst¹Ø¼ü×Ö¾¡¿ÉÄܶàµÄ×÷Óà ½â´ð£º

static¹Ø¼ü×ÖÖÁÉÙÓÐÏÂÁÐn¸ö×÷Óãº

£¨1£©º¯ÊýÌåÄÚstatic±äÁ¿µÄ×÷Ó÷¶Î§Îª¸Ãº¯ÊýÌ壬²»Í¬ÓÚauto±äÁ¿£¬¸Ã±äÁ¿µÄÄÚ´æÖ»±»

·ÖÅäÒ»´Î£¬Òò´ËÆäÖµÔÚÏ´ε÷ÓÃʱÈÔά³ÖÉϴεÄÖµ£»

£¨2£©ÔÚÄ£¿éÄÚµÄstaticÈ«¾Ö±äÁ¿¿ÉÒÔ±»Ä£¿éÄÚËùÓú¯Êý·ÃÎÊ£¬µ«²»Äܱ»Ä£¿éÍâÆäËüº¯Êý·ÃÎÊ£»

£¨3£©ÔÚÄ£¿éÄÚµÄstaticº¯ÊýÖ»¿É±»Õâһģ¿éÄÚµÄÆäËüº¯Êýµ÷Óã¬Õâ¸öº¯ÊýµÄʹÓ÷¶Î§±»ÏÞÖÆÔÚÉùÃ÷ËüµÄÄ£¿éÄÚ£»

£¨4£©ÔÚÀàÖеÄstatic³ÉÔ±±äÁ¿ÊôÓÚÕû¸öÀàËùÓµÓУ¬¶ÔÀàµÄËùÓжÔÏóÖ»ÓÐÒ»·Ý¿½±´£» £¨5£©ÔÚÀàÖеÄstatic³ÉÔ±º¯ÊýÊôÓÚÕû¸öÀàËùÓµÓУ¬Õâ¸öº¯Êý²»½ÓÊÕthisÖ¸Õ룬Òò¶øÖ»ÄÜ·ÃÎÊÀàµÄstatic³ÉÔ±±äÁ¿¡£

const¹Ø¼ü×ÖÖÁÉÙÓÐÏÂÁÐn¸ö×÷Óãº

£¨1£©Óû×èÖ¹Ò»¸ö±äÁ¿±»¸Ä±ä£¬¿ÉÒÔʹÓÃconst¹Ø¼ü×Ö¡£ÔÚ¶¨Òå¸Ãconst±äÁ¿Ê±£¬Í¨³£ÐèÒª¶ÔËü½øÐгõʼ»¯£¬ÒòΪÒÔºó¾ÍûÓлú»áÔÙÈ¥¸Ä±äËüÁË£»

£¨2£©¶ÔÖ¸ÕëÀ´Ëµ£¬¿ÉÒÔÖ¸¶¨Ö¸Õë±¾ÉíΪconst£¬Ò²¿ÉÒÔÖ¸¶¨Ö¸ÕëËùÖ¸µÄÊý¾ÝΪconst£¬»ò¶þÕßͬʱָ¶¨Îªconst£»

£¨3£©ÔÚÒ»¸öº¯ÊýÉùÃ÷ÖУ¬const¿ÉÒÔÐÞÊÎÐβΣ¬±íÃ÷ËüÊÇÒ»¸öÊäÈë²ÎÊý£¬ÔÚº¯ÊýÄÚ²¿²»ÄܸıäÆäÖµ£»

£¨4£©¶ÔÓÚÀàµÄ³ÉÔ±º¯Êý£¬ÈôÖ¸¶¨ÆäΪconstÀàÐÍ£¬Ôò±íÃ÷ÆäÊÇÒ»¸ö³£º¯Êý£¬²»ÄÜÐÞ¸ÄÀàµÄ³ÉÔ±±äÁ¿£»

£¨5£©¶ÔÓÚÀàµÄ³ÉÔ±º¯Êý£¬ÓÐʱºò±ØÐëÖ¸¶¨Æä·µ»ØֵΪconstÀàÐÍ£¬ÒÔʹµÃÆä·µ»ØÖµ²»Îª\×óÖµ\¡£ÀýÈ磺

const classA operator*(const classA& a1,const classA& a2);

operator*µÄ·µ»Ø½á¹û±ØÐëÊÇÒ»¸öconst¶ÔÏó¡£Èç¹û²»ÊÇ£¬ÕâÑùµÄ±ä̬´úÂëÒ²²»»á±àÒë³ö´í£º

classA a, b, c;

(a * b) = c; // ¶Ôa*bµÄ½á¹û¸³Öµ ²Ù×÷(a * b) =

cÏÔÈ»²»·ûºÏ±à³ÌÕߵijõÖÔ£¬Ò²Ã»ÓÐÈκÎÒâÒå¡£ ÆÊÎö£º

¾ªÑÈÂð£¿Ð¡Ð¡µÄstaticºÍconst¾ÓÈ»ÓÐÕâô¶à¹¦ÄÜ£¬ÎÒÃÇÄܻش𼸸ö£¿Èç¹ûÖ»Äܻشð1~2¸ö£¬ÄÇ»¹ÕæµÃ±Õ¹ØÔٺúÃÐÞÁ¶ÐÞÁ¶¡£

Õâ¸öÌâ¿ÉÒÔ¿¼²éÃæÊÔÕ߶ԳÌÐòÉè¼Æ֪ʶµÄÕÆÎճ̶ÈÊdzõ¼¶¡¢Ö춻¹ÊDZȽÏÉîÈ룬ûÓÐÒ»¶¨µÄ֪ʶ¹ã¶ÈºÍÉî¶È£¬²»¿ÉÄܶÔÕâ¸öÎÊÌâ¸ø³öÈ«ÃæµÄ½â´ð¡£´ó¶àÊýÈËÖ»Äܻشð³öst-aticºÍconst¹Ø¼ü×ֵIJ¿·Ö¹¦ÄÜ¡£ 4.¼¼ÇÉÌâ

ÊÔÌâ1£ºÇëдһ¸öCº¯Êý£¬Èô´¦ÀíÆ÷ÊÇBig_endianµÄ£¬Ôò·µ»Ø0£»ÈôÊÇLittle_endianµÄ£¬Ôò·µ»Ø1 ½â´ð£º int checkCPU() { { union w { int a; char b; } c; c.a = 1;

return (c.b == 1); } }

ÆÊÎö£º ǶÈëʽϵͳ¿ª·¢ÕßÓ¦¸Ã¶ÔLittle-endianºÍBig-endianģʽ·Ç³£Á˽⡣²ÉÓÃLittle-endianģʽµÄCPU¶Ô²Ù×÷ÊýµÄ´æ·Å·½

ʽÊÇ´ÓµÍ×Ö½Úµ½¸ß×Ö½Ú£¬¶øBig-endianģʽ¶Ô²Ù×÷ÊýµÄ´æ·Å·½Ê½ÊÇ´Ó¸ß×Ö½Úµ½µÍ×Ö½Ú¡£Àý

È磬16bit¿íµÄÊý0x1234ÔÚLittle-

endianģʽCPUÄÚ´æÖеĴæ·Å·½Ê½£¨¼ÙÉè´ÓµØÖ·0x4000¿ªÊ¼´æ·Å£©Îª£º ÄÚ´æµØÖ· ´æ·ÅÄÚÈÝ 0x4000 0x34 0x4001 0x12

¶øÔÚBig-endianģʽCPUÄÚ´æÖеĴæ·Å·½Ê½ÔòΪ£º ÄÚ´æµØÖ· ´æ·ÅÄÚÈÝ 0x4000 0x12 0x4001 0x34

32bit¿íµÄÊý0x12345678ÔÚLittle-endianģʽCPUÄÚ´æÖеĴæ·Å·½Ê½£¨¼ÙÉè´ÓµØÖ·0x4000¿ªÊ¼´æ·Å£©Îª£º ÄÚ´æµØÖ· ´æ·ÅÄÚÈÝ 0x4000 0x78 0x4001 0x56 0x4002 0x34 0x4003 0x12

¶øÔÚBig-endianģʽCPUÄÚ´æÖеĴæ·Å·½Ê½ÔòΪ£º ÄÚ´æµØÖ· ´æ·ÅÄÚÈÝ 0x4000 0x12 0x4001 0x34 0x4002 0x56 0x4003 0x78

ÁªºÏÌåunionµÄ´æ·Å˳ÐòÊÇËùÓгÉÔ±¶¼´ÓµÍµØÖ·¿ªÊ¼´æ·Å£¬ÃæÊÔÕߵĽâ´ðÀûÓøÃÌØÐÔ£¬ÇáËɵػñµÃÁËCPU¶ÔÄÚ´æ²ÉÓÃLittle-endian»¹ÊÇBig-en-dianģʽ¶Áд¡£Èç¹ûË­Äܵ±³¡¸ø³öÕâ¸ö½â´ð£¬ÄǼòÖ±¾ÍÊÇÒ»¸öÌì²ÅµÄ³ÌÐòÔ±¡£

ÊÔÌâ2£ºÐ´Ò»¸öº¯Êý·µ»Ø1+2+3+...+nµÄÖµ£¨¼Ù¶¨½á¹û²»»á³¬¹ý³¤ÕûÐͱäÁ¿µÄ·¶Î§£© ½â´ð£º int Sum( int n ) {

return ( (long)1 + n) * n / 2; //»òreturn (1l + n) * n / 2; }

ÆÊÎö£º ¶ÔÓÚÕâ¸öÌ⣬ֻÄÜ˵£¬Ò²Ðí×î¼òµ¥µÄ´ð°¸¾ÍÊÇ×îºÃµÄ´ð°¸¡£ÏÂÃæµÄ½â´ð£¬»òÕß»ùÓÚÏÂÃæµÄ½â´ð˼·ȥÓÅ»¯£¬²»¹ÜÔõô\ÕÛÌÚ\£¬ÆäЧÂÊÒ²²»¿ÉÄÜÓëÖ±½Óreturn ( 1 l + n ) * n / 2Ïà±È£¡ int Sum( int n ) {

long sum = 0;

for( int i=1; i<=n; i++ ) {

sum += i; }

return sum; }

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@) ËÕICP±¸20003344ºÅ-4