ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

C/C++º¯ÊýÖ¸Õë¼òµ¥½²½â

¸üÐÂʱ¼ä:2017Äê11ÔÂ21ÈÕ13ʱ11·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

ÔÚC++ÓïÑÔÖÐ,Ö¸ÕëÓ뺯ÊýÊÇÁ½¸öÖØÒªµÄ¸ÅÄî,ËüÃÇÏà½áºÏ²úÉúµÄ¸ÅÄî——º¯ÊýÖ¸ÕëÔÚÒ»°ãC++Êé¼®ÖнÏÉÙÉæ¼°,¶øÔÚÉî²ã±à³ÌÖÐ,Áé»îÔËÓú¯ÊýÖ¸ÕëÄÜʹ±à³Ì¼ò½à¡¢¸ßЧ¡¢Áé»î,ÇҿɶÁÐÔÇ¿¡£Ðí¶à³ÌÐòÔ±¶Ôº¯ÊýÖ¸Õë¸ÅÄî´æÔÚÄ£ºýÈÏʶ,µ¼Ö²»ÄÜÕýȷʹÓÃ,ÈÝÒײúÉú´íÎó¡£ÏÂÃæ¸ø´ó¼Ò¼òµ¥µÄ½éÉÜһϺ¯ÊýÖ¸Õ룺


º¯ÊýÖ¸ÕëµÄ¶¨Òå

ÿһ¸öº¯Êý¶¼Õ¼ÓÃÒ»¶ÎÄÚ´æµ¥Ôª£¬ËüÃÇÓÐÒ»¸öÆðʼµØÖ·£¬Ö¸Ïòº¯ÊýÈë¿ÚµØÖ·µÄÖ¸Õë³ÆÎªº¯ÊýÖ¸Õë¡£


º¯ÊýÖ¸ÕëµÄÓï·¨

Ö¸Ïòº¯ÊýµÄÖ¸Õë±äÁ¿µÄÒ»°ã¶¨ÒåÐÎʽΪ£º

Êý¾ÝÀàÐÍ (*Ö¸Õë±äÁ¿Ãû)(²ÎÊý±í)£»


¹ØÓÚº¯ÊýÖ¸ÕëµÄ˵Ã÷

1) º¯ÊýÖ¸ÕëµÄ¶¨ÒåÐÎʽÖеÄÊý¾ÝÀàÐÍÊÇÖ¸º¯ÊýµÄ·µ»ØÖµµÄÀàÐÍ¡£

2) Çø·ÖÏÂÃæÁ½¸öÓï¾ä£º


int (*p)(int a, int b); //pÊÇÒ»¸öÖ¸Ïòº¯ÊýµÄÖ¸Õë±äÁ¿£¬ËùÖ¸º¯ÊýµÄ·µ»ØÖµÀàÐÍΪÕûÐÍ

int *p(int a, int b); //pÊǺ¯ÊýÃû£¬´Ëº¯ÊýµÄ·µ»ØÖµÀàÐÍΪÕûÐÍÖ¸Õë

3) Ö¸Ïòº¯ÊýµÄÖ¸Õë±äÁ¿²»Êǹ̶¨Ö¸ÏòÄÄÒ»¸öº¯ÊýµÄ£¬¶øÖ»ÊDZíʾ¶¨ÒåÁËÒ»¸öÕâÑùÀàÐ͵ıäÁ¿£¬ËüÊÇרÃÅÓÃÀ´´æ·Åº¯ÊýµÄÈë¿ÚµØÖ·µÄ;ÔÚ³ÌÐòÖаÑÄÄÒ»¸öº¯ÊýµÄµØÖ·¸³¸øËü£¬Ëü¾ÍÖ¸ÏòÄÄÒ»¸öº¯Êý¡£

4) ÔÚ¸øº¯ÊýÖ¸Õë±äÁ¿¸³ÖµÊ±£¬Ö»Ðè¸ø³öº¯ÊýÃû£¬¶ø²»±Ø¸ø³ö²ÎÊý¡£

È纯ÊýmaxµÄÔ­ÐÍΪ£ºint max(int x, int y); Ö¸ÕëpµÄ¶¨ÒåΪ£ºint (*p)(int a, int b); Ôòp = max;µÄ×÷ÓÃÊǽ«º¯ÊýmaxµÄÈë¿ÚµØÖ·¸³¸øÖ¸Õë±äÁ¿p¡£Õâʱ£¬p¾ÍÊÇÖ¸Ïòº¯ÊýmaxµÄÖ¸Õë±äÁ¿£¬Ò²¾ÍÊÇpºÍmax¶¼Ö¸Ïòº¯ÊýµÄ¿ªÍ·¡£

5) ÔÚÒ»¸ö³ÌÐòÖУ¬Ö¸Õë±äÁ¿p¿ÉÒÔÏȺóÖ¸Ïò²»Í¬µÄº¯Êý£¬µ«Ò»¸öº¯Êý²»Äܸ³¸øÒ»¸ö²»Ò»Öµĺ¯ÊýÖ¸Õë(¼´²»ÄÜÈÃÒ»¸öº¯ÊýÖ¸ÕëÖ¸ÏòÓëÆäÀàÐͲ»Ò»Öµĺ¯Êý)¡£

ÈçÓÐÈçϵĺ¯Êý£ºint fn1(int x, int y); int fn2(int x);

¶¨ÒåÈçϵĺ¯ÊýÖ¸Õ룺int (*p1)(int a, int b); int (*p2)(int a);

Ôò

p1 = fn1; //ÕýÈ·

p2 = fn2; //ÕýÈ·

p1 = fn2; //²úÉú±àÒë´íÎó

6) ¶¨ÒåÁËÒ»¸öº¯ÊýÖ¸Õë²¢ÈÃËüÖ¸ÏòÁËÒ»¸öº¯Êýºó£¬¶Ôº¯ÊýµÄµ÷ÓÿÉÒÔͨ¹ýº¯ÊýÃûµ÷Óã¬Ò²¿ÉÒÔͨ¹ýº¯ÊýÖ¸Õëµ÷ÓÃ(¼´ÓÃÖ¸Ïòº¯ÊýµÄÖ¸Õë±äÁ¿µ÷ÓÃ)¡£

ÈçÓï¾ä£ºc = (*p)(a, b); //±íʾµ÷ÓÃÓÉpÖ¸ÏòµÄº¯Êý(max)£¬Êµ²ÎΪa,b£¬º¯Êýµ÷ÓýáÊøºóµÃµ½µÄº¯ÊýÖµ¸³¸øc¡£

7) º¯ÊýÖ¸ÕëÖ»ÄÜÖ¸Ïòº¯ÊýµÄÈë¿Ú´¦£¬¶ø²»¿ÉÄÜÖ¸Ïòº¯ÊýÖмäµÄijһÌõÖ¸Áî¡£²»ÄÜÓÃ*(p+1)À´±íʾº¯ÊýµÄÏÂÒ»ÌõÖ¸Áî¡£

8) º¯ÊýÖ¸Õë±äÁ¿³£ÓõÄÓÃ;֮һÊǰÑÖ¸Õë×÷Ϊ²ÎÊý´«µÝµ½ÆäËûº¯Êý¡£

¾ÙÀý

Ô´´úÂ룺

#include

using namespace std;

int max(int x, int y); //Çó×î´óÊý

int min(int x, int y); //Çó×îСÊý

int add(int x, int y); //ÇóºÍ

void process(int i, int j, int (*p)(int a, int b)); //Ó¦Óú¯ÊýÖ¸Õë

int main()

{

int x, y;

cin>>x>>y;

cout<<"Max is: ";

process(x, y, max);

cout<<"Min is: ";

process(x, y, min);

cout<<"Add is: ";

process(x, y, add);

return 0;

}

int max(int x, int y)

{

return x > y ? x : y;

}

int min(int x, int y)

{

return x > y ? y : x;

}

int add(int x, int y)

{

return x + y;

}

void process(int i, int j, int (*p)(int a, int b))

{

cout<

}

±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍC/C++ѧԺËùÓУ¬»¶Ó­×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡

×÷ÕߣºÀÖÓã²¥¿ÍC/C++ѧԺ

Ê×·¢£ºhttp://www.itcast.cn/c/

0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿