Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C ·ç¸ñ£¨C

C ·ç¸ñ£¨C-style£©Ç¿ÖÆ×ªÐÍÈçÏ£º
(T) exdivssion // cast exdivssion to be of type T
º¯Êý·ç¸ñ£¨Function-style£©Ç¿ÖÆ×ªÐÍʹÓÃÕâÑùµÄÓï·¨£º
T(exdivssion) // cast exdivssion to be of type T
 
ÕâÁ½ÖÖÐÎʽ֮¼äûÓб¾ÖÊÉϵIJ»Í¬£¬Ëü´¿´â¾ÍÊÇÒ»¸ö°ÑÀ¨ºÅ·ÅÔÚÄĵÄÎÊÌâ¡£ÎÒ°ÑÕâÁ½ÖÖÐÎʽ³ÆÎª¾É·ç¸ñ£¨old-style£©µÄÇ¿ÖÆ×ªÐÍ¡£
ʹÓñê×¼C++µÄÀàÐÍת»»·û£ºstatic_cast¡¢dynamic_cast¡¢reinterdivt_cast¡¢ºÍconst_cast¡£
3.1 static_cast
Ó÷¨£ºstatic_cast < type-id > ( exdivssion )
¸ÃÔËËã·û°Ñexdivssionת»»Îªtype-idÀàÐÍ£¬µ«Ã»ÓÐÔËÐÐʱÀàÐͼì²éÀ´±£Ö¤×ª»»µÄ°²È«ÐÔ¡£ËüÖ÷ÒªÓÐÈçϼ¸ÖÖÓ÷¨£º
¢ÙÓÃÓÚÀà²ã´Î½á¹¹ÖлùÀàºÍ×ÓÀàÖ®¼äÖ¸Õë»òÒýÓõÄת»»¡£
¡¡¡¡½øÐÐÉÏÐÐת»»£¨°Ñ×ÓÀàµÄÖ¸Õë»òÒýÓÃת»»³É»ùÀà±íʾ£©Êǰ²È«µÄ£»
¡¡¡¡½øÐÐÏÂÐÐת»»£¨°Ñ»ùÀàÖ¸Õë»òÒýÓÃת»»³É×ÓÀà±íʾ£©Ê±£¬ÓÉÓÚûÓж¯Ì¬ÀàÐͼì²é£¬ËùÒÔÊDz»°²È«µÄ¡£
¢ÚÓÃÓÚ»ù±¾Êý¾ÝÀàÐÍÖ®¼äµÄת»»£¬Èç°Ñintת»»³Échar£¬°Ñintת»»³Éenum¡£ÕâÖÖת»»µÄ°²È«ÐÔÒ²Òª¿ª·¢ÈËÔ±À´±£Ö¤¡£
¢Û°Ñ¿ÕÖ¸Õëת»»³ÉÄ¿±êÀàÐ͵ĿÕÖ¸Õë¡£
¢Ü°ÑÈκÎÀàÐ͵ıí´ïʽת»»³ÉvoidÀàÐÍ¡£
×¢Ò⣺static_cast²»ÄÜת»»µôexdivssionµÄconst¡¢volitale¡¢»òÕß__unalignedÊôÐÔ¡£
3.2 dynamic_cast
Ó÷¨£ºdynamic_cast < type-id > ( exdivssion )
¸ÃÔËËã·û°Ñexdivssionת»»³Étype-idÀàÐ͵ĶÔÏó¡£Type-id±ØÐëÊÇÀàµÄÖ¸Õë¡¢ÀàµÄÒýÓûòÕßvoid *£»
Èç¹ûtype-idÊÇÀàÖ¸ÕëÀàÐÍ£¬ÄÇôexdivssionÒ²±ØÐëÊÇÒ»¸öÖ¸Õ룬Èç¹ûtype-idÊÇÒ»¸öÒýÓã¬ÄÇôexdivssionÒ²±ØÐëÊÇÒ»¸öÒýÓá£
dynamic_castÖ÷ÒªÓÃÓÚÀà²ã´Î¼äµÄÉÏÐÐת»»ºÍÏÂÐÐת»»£¬»¹¿ÉÒÔÓÃÓÚÀàÖ®¼äµÄ½»²æ×ª»»¡£
ÔÚÀà²ã´Î¼ä½øÐÐÉÏÐÐת»»Ê±£¬dynamic_castºÍstatic_castµÄЧ¹ûÊÇÒ»ÑùµÄ£»
ÔÚ½øÐÐÏÂÐÐת»»Ê±£¬dynamic_cast¾ßÓÐÀàÐͼì²éµÄ¹¦ÄÜ£¬±Èstatic_cast¸ü°²È«¡£
class B{
public:
int m_iNum;
virtual void foo();
};
class D:public B{
public:
char *m_szName[100];
};
void func(B *pb){
D *pd1 = static_cast(pb);
D *pd2 = dynamic_cast(pb);
}
ÔÚÉÏÃæµÄ´úÂë¶ÎÖУ¬Èç¹ûpbÖ¸ÏòÒ»¸öDÀàÐ͵ĶÔÏó£¬pd1ºÍpd2ÊÇÒ»ÑùµÄ£¬²¢ÇÒ¶ÔÕâÁ½¸öÖ¸ÕëÖ´ÐÐDÀàÐ͵ÄÈκβÙ×÷¶¼Êǰ²È«µÄ£»
µ«ÊÇ£¬Èç¹ûpbÖ¸ÏòµÄÊÇÒ»¸öBÀàÐ͵ĶÔÏó£¬ÄÇôpd1½«ÊÇÒ»¸öÖ¸Ïò¸Ã¶ÔÏóµÄÖ¸Õ룬¶ÔËü½øÐÐDÀàÐ͵IJÙ×÷½«ÊDz»°²È«µÄ£¨Èç·ÃÎÊm_szName£©£¬
¶øpd2½«ÊÇÒ»¸ö¿ÕÖ¸Õë¡£
ÁíÍâҪעÒ⣺BÒªÓ


Ïà¹ØÎĵµ£º

ÈçºÎʹÓ÷ºÐÍÄ£擬virtual? (C/C++) (template)

ÍøÉÏÒ»µÀ½ðɽµÄÃæÊÔÌ⣺
http://topic.csdn.net/u/20100524/14/0eff992a-2849-4db6-bdaa-d4a200e79b7c.html
Çë·Ö±ðÓÃC++µÄÃæÏò¶ÔÏóºÍ·ºÐÍ»úÖÆ£¬±àдʵÏÖTemplate MethodģʽµÄʾÀý´úÂ룬²¢±È½ÏÁ½ÖÖ·½Ê½¸÷×ÔµÄÓÅȱµã¡£
ÓÃÐ麯ÊýʵÏÖTemplate MethodµÄ·½Ê½¾Í²»¶à˵ÁË¡£Ó÷ºÐ͵ķ½Ê½ÊµÏÖ¶à̬ÔÚATLÀïÃæÓдóÁ¿µÄÓõ½£¡
·ºÐ͵ ......

(ת£©Ñ§Ï°c/c++µÄ50¸öºÃÍøÕ¾

1¡¢http://snippets.dzone.com/tag/c/ --ÊýÒÔǧ¼ÆµÄÓÐÓõÄCÓïÑÔÔ´´úÂëÆ¬¶Î
2¡¢http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --ÌṩÊýÒ԰ټƵÄCºÍC++½Å±¾ºÍ³ÌÐò¡£ËùÓгÌÐò¶¼·ÖΪ²»Í¬µÄÀà±ð¡£
3¡¢http://www.planetsourcecode.com/vb/default.asp?lngWId=3 --³¬¹ýÍòÐÐCºÍC++Ãâ·ÑµÄÔ´´úÂë
4¡ ......

strassen in c language.

#include<stdio.h>
#define N 8
void input(int n,int p[N][N])
{
 int i,j;
 for(i=0;i<n;i++)
 {
  printf("please input the %d line:\n",i+1);
  for(j=0;j<n;j++)
  {
  scanf("%d",&p[i][j]);
 }
}
 }
void output(int n,int p[N][N])
......

¡¶Cר¼Ò±à³Ì¡·Ñ§Ï°×ܽá2


¡¶Cר¼Ò±à³Ì¡·Ñ§Ï°×ܽá2
 
ת×Ô £º http://blog.chinaunix.net/u2/87570/showart_2120069.html
±àÒëÆ÷×öÁËЩʲô
 
                 ͼ1£º±àÒëÆ÷ͨ³£·Ö¸î³É¼¸¸ö¸üСµÄ³ÌÐò
 
¾²Ì¬Á´½ÓÓ붯̬Á´½Ó
 
  ......

C static

  CÓïÑÔ³ÌÐò¿ÉÒÔ¿´³ÉÓÉһϵÁÐÍⲿ¶ÔÏ󹹳ɣ¬ÕâЩÍⲿ¶ÔÏó¿ÉÄÜÊDZäÁ¿»òº¯Êý¡£¶øÄÚ²¿±äÁ¿ÊÇÖ¸¶¨ÒåÔÚº¯ÊýÄÚ²¿µÄº¯Êý²ÎÊý¼°±äÁ¿¡£Íⲿ±äÁ¿¶¨ÒåÔÚº¯ÊýÖ®Í⣬Òò´Ë¿ÉÒÔÔÚÐí¶àº¯ÊýÖÐʹÓá£ÓÉÓÚCÓïÑÔ²»ÔÊÐíÔÚÒ»¸öº¯ÊýÖж¨ÒåÆäËüº¯Êý£¬Òò´Ëº¯Êý±¾ÉíÖ»ÄÜÊÇ“ÍⲿµÄ”¡£
      ÓÉÓÚ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ