Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ʵÏÖ±³°üÎÊÌ⣨̰ÐÄ£©

ºÃ¾ÃÒÔǰ×öµÄÒ»¸ö³ÌÐò£¬Ì°Ð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 ......

C preprocessor

http://en.wikipedia.org/wiki/C_preprocessor
C preprocessor
from Wikipedia, the free encyclopedia
Jump to:navigation, search
The C preprocessor (cpp) is the preprocessor for the C programming language. In many C implementations, it is a separate program invoked by the compiler as the first part ......

¡¾Á´½Ó¡¿C/C++ Online Reference


C/C++ Reference 
http://www.cppreference.com/ 
C++ Library Reference 
http://www.cplusplus.com/ref/ 
Standard C++ Library Class Reference at Rogue Wave 
http://www.roguewave.com/support/docs/hppdocs/stdref/ 
Dink ......

C++ÓëCµÄÇø±ð ±±º£

1£©  º¯ÊýÉùÃ÷
l         CÈç¹û²»Ð´·µ»ØÖµ£¬Ä¬ÈÏÊÇint£¬¶øC++Öв»Äܲ»Ð´·µ»ØÖµ(¿ÉÓÃvoid±íʾÎÞ·µ»ØÖµ)¡£
ÈçFunc1();
l         int Func1()ÔÚCÖбíʾ¿É´øÈÎÒâ²ÎÊýµÄº¯Êý£¬ÕâÊÇCµÄ©¶´£¬Ê¹µÃËü±Ü¿ªÁ˲ÎÊýÀàÐͼì²é£»¶øC++Öбíʾ²»´ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ