ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

C++±ÊÊÔÃæÊÔÌâ ´ÓÍøÉÏÕûÀíµÄ£¬´ø´ð°¸(Ò»)
2014-11-24 01:23:07 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:363´Î
Tags£º±ÊÊÔ ÊÔÌâ ÍøÉÏ ÕûÀí ´ð°¸

1.new ¡¢ delete ¡¢ malloc ¡¢ free ¹Øϵ


delete »áµ÷ÓöÔÏóµÄÎö¹¹º¯Êý , ºÍ new ¶ÔÓ¦ free Ö»»áÊÍ·ÅÄڴ棬 new µ÷Óù¹Ô캯Êý¡£ malloc Óë free ÊÇ C++/C ÓïÑԵıê×¼¿âº¯Êý£¬ new/delete ÊÇ C++ µÄÔËËã·û¡£ËüÃǶ¼¿ÉÓÃÓÚÉêÇ붯̬ÄÚ´æºÍÊÍ·ÅÄÚ´æ¡£¶ÔÓÚ·ÇÄÚ²¿Êý¾ÝÀàÐ͵ĶÔÏó¶øÑÔ£¬¹âÓà maloc/free ÎÞ·¨Âú×㶯̬¶ÔÏóµÄÒªÇ󡣶ÔÏóÔÚ´´½¨µÄͬʱҪ×Ô¶¯Ö´Ðй¹Ô캯Êý£¬¶ÔÏóÔÚÏûÍö֮ǰҪ×Ô¶¯Ö´ÐÐÎö¹¹º¯Êý¡£ÓÉÓÚ malloc/free Êǿ⺯Êý¶ø²»ÊÇÔËËã·û£¬²»ÔÚ±àÒëÆ÷¿ØÖÆȨÏÞÖ®ÄÚ£¬²»Äܹ»°ÑÖ´Ðй¹Ô캯ÊýºÍÎö¹¹º¯ÊýµÄÈÎÎñÇ¿¼ÓÓÚ malloc/free ¡£Òò´Ë C++ ÓïÑÔÐèÒªÒ»¸öÄÜÍê³É¶¯Ì¬ÄÚ´æ·ÖÅäºÍ³õʼ»¯¹¤×÷µÄÔËËã·û new £¬ÒÔ¼°Ò»¸öÄÜÍê³ÉÇåÀíÓëÊÍ·ÅÄڴ湤×÷µÄÔËËã·û delete ¡£×¢Òâ new/delete ²»Êǿ⺯Êý¡£


×ܽ᣺newºÍdelete»á×Ô¶¯µ÷ÓöÔÏóµÄ¹¹ÔìÓëÎö¹¹º¯Êý¶ømallocÓëfree²»»á£»


newºÍdeleteʽC++ÔËËã·û£¬¶ømallocºÍfreeÊÇC/C++±ê×¼¿âº¯Êý¡£
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
2.delete Óë delete [] Çø±ð


delete Ö»»áµ÷ÓÃÒ»´ÎÎö¹¹º¯Êý£¬¶ø delete[] »áµ÷ÓÃÿһ¸ö³ÉÔ±µÄÎö¹¹º¯Êý¡£ÔÚ More Effective C++ ÖÐÓиüΪÏêϸµÄ½âÊÍ£º¡°µ± delete ²Ù×÷·ûÓÃÓÚÊý×éʱ£¬ËüΪÿ¸öÊý×éÔªËص÷ÓÃÎö¹¹º¯Êý£¬È»ºóµ÷Óà operatordelete À´ÊÍ·ÅÄÚ´æ¡£¡± delete Óë New ÅäÌ×£¬ delete [] Óë new [] ÅäÌ×


MemTest*mTest1=newMemTest[10];


MemTest*mTest2=newMemTest;


int*pInt1=newint[10];


int*pInt2=newint;


delete[]pInt1; //-1-


delete[]pInt2; //-2-


delete[]mTest1;//-3-


delete[]mTest2;//-4-


ÔÚ -4- ´¦±¨´í¡£


Õâ¾Í˵Ã÷£º¶ÔÓÚÄÚ½¨¼òµ¥Êý¾ÝÀàÐÍ£¬ delete ºÍ delete[] ¹¦ÄÜÊÇÏàͬµÄ¡£¶ÔÓÚ×Ô¶¨ÒåµÄ¸´ÔÓÊý¾ÝÀàÐÍ£¬ delete ºÍ delete[] ²»ÄÜ»¥Óᣠdelete[] ɾ³ýÒ»¸öÊý×飬 delete ɾ³ýÒ»¸öÖ¸Õë¼òµ¥À´Ëµ£¬Óà new ·ÖÅäµÄÄÚ´æÓà delete ɾ³ýÓà new[] ·ÖÅäµÄÄÚ´æÓà delete[] ɾ³ý delete[] »áµ÷ÓÃÊý×éÔªËصÄÎö¹¹º¯Êý¡£ÄÚ²¿Êý¾ÝÀàÐÍûÓÐÎö¹¹º¯Êý£¬ËùÒÔÎÊÌâ²»´ó¡£Èç¹ûÄãÔÚÓà delete ʱûÓÃÀ¨ºÅ£¬ delete ¾Í»áÈÏΪָÏòµÄÊǵ¥¸ö¶ÔÏ󣬷ñÔò£¬Ëü¾Í»áÈÏΪָÏòµÄÊÇÒ»¸öÊý×é¡£


×ܽ᣺ delete Ö»»áµ÷ÓÃÒ»´ÎÎö¹¹º¯Êý£¬¶ø delete[] »áµ÷ÓÃÿһ¸ö³ÉÔ±µÄÎö¹¹º¯Êý¡£
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
3.C C++ JAVA ¹²Í¬µã£¬²»Í¬Ö®´¦£¿


Ïàͬµã£º¶¼ÊÇÃæÏò¶ÔÏóµÄÓïÑÔ
²»Í¬µã£ºc/c++ÊDZàÒëÐÍÓïÑÔ£¬»¹ÓÐһЩÓïÑÔÍêÈ«ÊǽâÊÍÐ͵ģ¨ÈçBasie£©£¬¶øjava¼ÈÊDZàÒëÐ͵ÄÓÖÊǽâÊÍÐ͵ÄÓïÑÔ
c/c++´æÔÚÖ¸ÕëÔËË㣬BasieûÓÐÏÔʾָÕ룬¶øjavaÓÐÖ¸Õ룬µ«È¡ÏûÁËÖ¸ÕëµÄÔËËã
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
4. ¼Ì³ÐÓÅȱµã¡£


Àà¼Ì³ÐÊÇÔÚ±àÒëʱ¿Ì¾²Ì¬¶¨ÒåµÄ£¬ÇÒ¿ÉÖ±½ÓʹÓã¬Àà¼Ì³Ð¿ÉÒԽϷ½±ãµØ¸Ä±ä¸¸ÀàµÄʵÏÖ¡£µ«ÊÇÀà¼Ì³ÐÒ²ÓÐһЩ²»×ãÖ®´¦¡£Ê×ÏÈ£¬ÒòΪ¼Ì³ÐÔÚ±àÒëʱ¿Ì¾Í¶¨ÒåÁË£¬ËùÒÔÎÞ·¨ÔÚÔËÐÐʱ¿Ì¸Ä±ä´Ó¸¸Àà¼Ì³ÐµÄʵÏÖ¡£¸üÔãµÄÊÇ£¬¸¸Ààͨ³£ÖÁÉÙ¶¨ÒåÁË×ÓÀàµÄ²¿·ÖÐÐΪ£¬¸¸ÀàµÄÈκθı䶼¿ÉÄÜÓ°Ïì×ÓÀàµÄÐÐΪ¡£Èç¹û¼Ì³ÐÏÂÀ´µÄʵÏÖ²»ÊʺϽâ¾öеÄÎÊÌ⣬Ôò¸¸Àà±ØÐëÖØд»ò±»ÆäËû¸üÊʺϵÄÀàÌæ»»¡£ÕâÖÖÒÀÀµ¹ØϵÏÞÖÆÁËÁé»îÐÔ²¢×îÖÕÏÞÖÆÁ˸´ÓÃÐÔ¡£
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
5.C++ ÓÐÄÄЩÐÔÖÊ£¨ÃæÏò¶ÔÏóÌص㣩
·â×°£¬¼Ì³ÐºÍ¶à̬¡£


ÔÚÃæÏò¶ÔÏó³ÌÐòÉè¼ÆÓïÑÔÖУ¬·â×°ÊÇÀûÓÿÉÖØÓóɷֹ¹ÔìÈí¼þϵͳµÄÌØÐÔ£¬Ëü²»½öÖ§³ÖϵͳµÄ¿ÉÖØÓÃÐÔ£¬¶øÇÒ»¹ÓÐÀûÓÚÌá¸ßϵͳµÄ¿ÉÀ©³äÐÔ£»ÏûÏ¢´«µÝ¿ÉÒÔʵÏÖ·¢ËÍÒ»¸öͨÓõÄÏûÏ¢¶øµ÷Óò»Í¬µÄ·½·¨£»·â×°ÊÇʵÏÖÐÅÏ¢Òþ±ÎµÄÒ»ÖÖ¼¼Êõ£¬ÆäÄ¿µÄÊÇʹÀàµÄ¶¨ÒåºÍʵÏÖ·ÖÀë¡£
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
6. ×ÓÀàÎö¹¹Ê±Òªµ÷Óø¸ÀàµÄÎö¹¹º¯ÊýÂð£¿
Îö¹¹º¯Êýµ÷ÓõĴÎÐòÊÇÏÈÅÉÉúÀàµÄÎö¹¹ºó»ùÀàµÄÎö¹¹£¬Ò²¾ÍÊÇ˵ÔÚ»ùÀàµÄµÄÎö¹¹µ÷ÓõÄʱºò , ÅÉÉúÀàµÄÐÅÏ¢ÒѾ­È«²¿Ïú»ÙÁ˶¨ÒåÒ»¸ö¶ÔÏóʱÏȵ÷ÓûùÀàµÄ¹¹Ô캯Êý¡¢È»ºóµ÷ÓÃÅÉÉúÀàµÄ¹¹Ô캯Êý£»Îö¹¹µÄʱºòÇ¡ºÃÏà·´£ºÏȵ÷ÓÃÅÉÉúÀàµÄÎö¹¹º¯Êý¡¢È»ºóµ÷ÓûùÀàµÄÎö¹¹º¯Êý JAVA ÎÞÎö¹¹º¯ÊýÉ±´ºÍdz¿½±´
¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨C
7. ¶à̬£¬Ð麯Êý£¬´¿Ð麯Êý


Õâôһ´ó¶ÑÃû´Ê£¬Êµ¼ÊÉϾÍΧÈÆÒ»¼þÊÂÕ¹¿ª£¬¾ÍÊǶà̬£¬ÆäËûÈý¸öÃû´Ê¶¼ÊÇΪʵÏÖC++µÄ¶à̬»úÖƶøÌá³öµÄһЩ¹æÔò£¬ÏÂÃæ·ÖÁ½²¿·Ö½éÉÜ£¬µÚÒ»²¿·Ö½éÉÜ¡¾¶à̬¡¿£¬µÚ¶þ²¿·Ö½éÉÜ¡¾Ð麯Êý£¬´¿Ð麯Êý£¬³éÏóÀà¡¿
Ò» ¡¾¶à̬¡¿
¶à̬µÄ¸ÅÄî £º¹ØÓÚ¶à̬£¬ºÃ¼¸ÖÖ˵·¨£¬ºÃµÄ»µµÄ¶¼ÓУ¬·Ö±ð˵һÏ£º
1 ָͬһ¸öº¯ÊýµÄ¶àÖÖÐÎ̬¡£
¸öÈËÈÏΪÕâÊÇÒ»ÖÖ¸ßÊÖÖеĸßÊÖϲ»¶µÄ˵·¨£¬¶ÔÓÚÒ»°ã¿ª·¢ÈËÔ±ÊÇÒ»ÖÖ²îµÄ²»ÄÜÔÙ²îµÄ¸ÅÄ¼òÖ±ÊǶÔÈ˵ÄÎóµ¼£¬È»È˺ÜÈÝÒ׾Ϳ¿µ½º¯ÊýÖØÔØÉÏÁË¡£


ÒÔÏÂÊǸöÈËÈÏΪ½âÊ͵ıȽϺõÄÁ½ÖÖ˵·¨£¬Òâ˼´óÌåÏàͬ£º
2¶à̬ÊǾßÓбíÏÖ¶àÖÖÐÎ̬µÄÄÜÁ¦µÄÌØÕ÷£¬ÔÚOOÖÐÊÇÖ¸£¬ÓïÑÔ¾ßÓиù¾Ý¶ÔÏóµÄÀàÐÍÒÔ²»Í¬·½Ê½´¦ÀíÖ®£¬ÌرðÊÇÖØÔØ·½·¨ºÍ¼Ì³ÐÀàÕâÖÖÐÎʽµÄÄÜÁ¦¡£
ÕâÖÖ˵·¨ÓеãÈÆ£¬×ÐϸÏëÏ룬Õâ²ÅÊÇC++Òª¸æËßÎÒÃǵġ£


3¶à̬ÐÔÊÇÔÊÐíÄ㽫¸¸¶ÔÏóÉèÖóÉΪºÍÒ»¸ö»ò¸ü¶àµÄËûµÄ×Ó¶ÔÏóÏàµÈµÄ¼¼Êõ£¬¸³ÖµÖ®ºó£¬¸¸¶ÔÏó¾Í¿ÉÒÔ¸ù¾Ýµ±Ç°¸³Öµ¸øËüµÄ×Ó¶ÔÏóµÄÌØÐÔÒÔ²»Í¬µÄ·½Ê½ÔË×÷¡£¼òµ¥µÄ˵£¬¾ÍÊÇÒ»¾ä»°£ºÔÊÐí½«×ÓÀàÀàÐ͵ÄÖ¸Õ븳ֵ¸ø¸¸ÀàÀàÐ͵ÄÖ¸Õë¡£¶à̬ÐÔÔÚObject PascalºÍC++Öж¼ÊÇͨ¹ýÐ麯Êý£¨Virtual Function£© ʵÏֵġ£
ÕâÖÖ˵·¨¿´À´ÊÇÓÖÒ׶®£¬ÓÖÈ«ÃæµÄÒ»ÖÖ£¬ÓÈÆäÊÇ×îºóÒ»¾ä£¬Ö±½Óµã³öÁËÐ麯ÊýÓë¶à̬ÐԵĹØϵ£¬Èç¹ûÄ㻹ÊDz»Ì«¶®£¬Ã»¹Øϵ£¬ÔÙ°Ñ3¶ÁÁ½±é£¬ÓиöÓ¡Ïó£¬Íùºó¿´°É¡£
- ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C - ¨C -
¶þ ¡¾Ð麯Êý£¬´¿Ð麯Êý£¬³éÏóÀà¡¿
¶à̬²Å˵Á˸ö¸ÅÄÓÐʲôÓû¹Ã»Ëµ¾Í½øÈëµÚ¶þ²¿·ÖÁË£¿¿´¿´¸ÅÄî3µÄ×îºóÒ»¾ä£¬Ð麯Êý¾ÍÊÇΪ¶à̬¶øÉúµÄ£¬¶à̬µÄ×÷ÓõĽéÉܺÍÐ麯Êý¼òÖ±¹Øϵ̫´óÁË£¬¾Í·ÅÒ»Æð˵°É¡£


¶à̬µÄ×÷Ó㺼̳ÐÊÇ×ÓÀàʹÓø¸ÀàµÄ·½·¨£¬¶ø¶à̬ÔòÊǸ¸ÀàʹÓÃ×ÓÀàµÄ·½·¨¡£ÕâÊÇÒ»¾ä´ó°×»°£¬¶à̬´ÓÓ÷¨ÉϾÍÊÇÒªÓø¸Àà(È·ÇеÄ˵ÊǸ¸ÀàµÄ¶ÔÏóÃû)È¥µ÷ÓÃ×ÓÀàµÄ·½·¨£¬ÀýÈ磺
¡¾ÀýÒ»¡¿
class A {
public:
A() {}
£¨virtual£© void print() {
cout << ¡°This is A.¡± << endl;
}
};
class B : public A {
public:
B() {}
void print() {
cout << ¡°This is B.¡± << endl; ¡¡¡¡} ¡¡¡¡}; ¡¡¡¡int main(int argc, char* argv[]) { ¡¡¡¡ B b; A a; a = b;a.print;¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª- make1 // A &a = b; a->print();¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª-make2
//A *a = new B();a->print();¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¡ª¨Cmake3
return 0;
}
Õ⽫ÏÔʾ£º
This is B.
Èç¹û°ÑvirtualÈ¥µô£¬½«ÏÔʾ£º
This is A.
(make1,2,3·Ö±ðÊǶÔÓ¦¼æÈݹæÔò(ºóÃæ½éÉÜ)µÄÈýÖÖ·½Ê½£¬µ÷Óýá¹ûÊÇÒ»ÑùµÄ)
¼ÓÉÏvirtual ,¶à̬ÁË£¬BÖеÄprint±»µ÷ÓÃÁË£¬Ò²¾ÍÊÇ¿ÉÒÔʵÏÖ¸¸ÀàʹÓÃ×ÓÀàµÄ·½·¨¡£
¶Ô¶à̬µÄ×÷ÓÃÓÐÒ»¸ö³õ²½µÄÈÏʶÁËÖ®ºó£¬ÔÙÌá³ö¸ü¹Ù·½£¬Ò²ÊǸü׼ȷµÄ¶Ô¶à̬×÷ÓõÄÃèÊö£º
¶à̬ÐÔʹµÃÄܹ»ÀûÓÃͬһÀà(»ùÀà)ÀàÐ͵ÄÖ¸ÕëÀ´ÒýÓò»Í¬Àà

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 4 5 ÏÂÒ»Ò³ βҳ 1/5/5
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºc/c++¾­µäÃæÊÔÌâ ÏÂһƪ£ºÊý×éÃûÓëÖ¸ÕëµäÐÍÃæÊÔÌâµÄ·ÖÎö

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿