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ÒªÓ
Ïà¹ØÎĵµ£º
ºÃ¾ÃÒÔǰ×öµÄÒ»¸ö³ÌÐò£¬Ì°ÐIJßÂÔʵÏÖ±³°üÎÊÌ⣬cʵÏÖ¡£
×ܽáÔÚÕâÀÒÔ±¸ÒÔºóºÍ±ðÈ˲éÕÒ¡£
//±³°üÎÊÌâ
#include "stdio.h"
#define MAX 10
void main()
{
int w[MAX]={0,10,130,15,60,25}; //´æ·ÅÖÊÁ¿
int v[MAX]={0,30,5,10,20,25}; //´æ·Å¼ÛÖµ
flo ......
Àý) Σ険¤Ê¥³ー¥Ç¥£¥ó¥°
1 char cStr[256];
2 ZeroMemory(cStr, sizeof(cStr));
3 &nb ......
PHPÈ¡µÃ³É¹¦µÄÒ»¸öÖ÷ÒªÔÒòÖ®Ò»ÊÇËýÓµÓдóÁ¿µÄ¿ÉÓÃÀ©Õ¹¡£web¿ª·¢ÕßÎÞÂÛÓкÎÖÖÐèÇó£¬ÕâÖÖÐèÇó×îÓпÉÄÜÔÚPHP·¢ÐаüÀïÕÒµ½¡£PHP·¢Ðаü°üÀ¨Ö§³Ö¸÷ÖÖÊý¾Ý¿â£¬Í¼ÐÎÎļþ¸ñʽ£¬Ñ¹Ëõ£¬XML¼¼ÊõÀ©Õ¹ÔÚÄÚµÄÐí¶àÀ©Õ¹¡£
¡¡¡¡À©Õ¹APIµÄÒýÈëʹPHPÈ¡µÃÁ˾޴óµÄ½øÕ¹£¬À©Õ¹API»úÖÆÊ¹PHP¿ª·¢ÉçÇøºÜÈÝÒ׵Ŀª·¢³ö¼¸Ê®ÖÖÀ©Õ¹¡£¡£À©Õ¹Ö÷ÒªµÄ˼ÏëÊÇ ......
°ÑÊäÈëµÄÒ»´®×Ö·ûת³ÉÊý×飬ת³ÉÁ´±í£¬È»ºóɾȥÆäÖÐÖ¸¶¨µÄ×Ö·û£¬ÔÚβ²¿Ìí¼ÓÒ»¸ö×Ö·û¡£
£¨³ÌÐò»¹²»ÍêÉÆ£¬Ã»ÓжÔÊä´íµÄÇé¿ö½øÐд¦Àí£¬£¬ÔÝʱÏÈÕâÑù°É¡£¡£= =¡££©
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct link)
struct link
{
char ch;
struct link *next;
}*string;
char a ......
Ëü¿ÉÒÔµ¼Èë¿â£¬µ÷ÓÃÍâÃæµÄ¿âº¯Êý£¬javaÓïÑԾͺܺõĵØÀûÓÃÁËÕâÒ»µã£¬jspÒ²¿ÉÒÔÔÚÍøÒ³Öе÷ÓÃjava±àдºÃµÄ³ÌÐò£¬ÒªÊ¹ÓÃjavabean±êÇ©
struts±¾Éí¾ÍÊǶÔjava¼¼ÊõÒ»¸ö°ü×°,°üÀ¨£¬html,jsp¼°±êÇ©,servlet¡£
hibernateÊDZðÈ˱àдºÃÓ³ÉäÊý¾Ý¿âµÄ¹¤¾ß£¬Æä´úÂë¶¼ÊÇÓÃjavaÓïÑÔ±àдµÄ£¬Ö»ÊÇΪÁË·½±ãÓû§Ê¹Óã¬Óû§Ö»Òªµ¼ÈëÆä¿â£¬µ÷ÓÃÆ ......