C/C++ÖеÄstatic
C++ÖеÄStaticÓÐÁ½¸ö×÷Óá£
1¡¢ ¾²Ì¬¾Ö²¿±äÁ¿
¾²Ì¬¾Ö²¿±äÁ¿ÔÚº¯ÊýÄÚ¶¨Òå ËüµÄÉú´æÆÚΪÕû¸öÔ´³ÌÐò£¬µ«ÊÇÆä×÷ÓÃÓòÔڸú¯ÊýÄÚ£¬Ö»ÄÜÔÚ¶¨Òå¸Ã±äÁ¿µÄº¯ÊýÄÚʹÓøñäÁ¿¡£ ÔÊÐí¶Ô¹¹ÔìÀྲ̬¾Ö²¿Á¿¸³³õÖµ£¬Èôδ¸³ÒÔ³õÖµ£¬ÔòÓÉϵͳ×Ô¶¯¸³ÒÔ0Öµ¡£
void fun1()
{
static int i = 0;
cout << ++i << endl;
}
int main()
{
for(int i = 0; i < 5; i++)
{
fun1();
}
}
Output :
1
2
3
4
2¡¢¾²Ì¬È«¾Ö±äÁ¿
È«¾Ö±äÁ¿Ç°ÔÙ¼ÓÉÏstatic ¾Í³ÉÁ˾²Ì¬µÄÈ«¾Ö±äÁ¿¡£È«¾Ö±äÁ¿±¾Éí¾ÍÊǾ²Ì¬´æ´¢·½Ê½£¬ ¾²Ì¬È«¾Ö±äÁ¿µ±È»Ò²ÊǾ²Ì¬´æ´¢·½Ê½¡£È«¾Ö±äÁ¿×÷ÓÃÓòÊÇÕû¸öÔ´³ÌÐò£¬¶ø¾²Ì¬È«¾Ö±äÁ¿×÷ÓÃÓòÈ·ÊǸÃÎļþ¡£¾²Ì¬º¯ÊýÀàËÆ¡£
Ïà¹ØÎĵµ£º
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++ Templates¡·£¬¿´µ½Ò»¸ö·ÇÀàÐÍÄ£°åʵ²ÎµÄÀý×ÓÖÐÓÐÕâÑùµÄ´úÂ룺
template <typename T, T nontype_param>
class C;
class X{
public:
int n;
static bool b;
};
C<int X::*, &X::n>* c5;
X::*¿ÉÒÔ±íʾXÀàµÄ³ÉÔ±µÄÖ¸Õ룬ÓÃÓÚ±íʾÀàÐÍ£¬µÚÒ»´Î¼û£¬ ......
Ò»¡¢ºê¶¨Òå(²»´ø²ÎÊýµÄºê¶¨Òå,´ø²ÎÊýµÄºê¶¨Òå)
1.±àÒëÔ¤´¦Àí¾ÍÊǶÔCÔ´³ÌÐò½øÐбàÒëǰ,ÓÉ"±àÒëÔ¤´¦Àí³ÌÐò"¶ÔÔ¤´¦ÀíÃüÁîÐнøÐд¦ÀíµÄ¹ý³Ì¡£
2.CÓïÑÔÖÐ,·²ÊÇÒÔ"#"¿ªÍ·µÄÐÐ,¶¼³ÆÎª"±àÒëÔ¤´¦Àí"ÃüÁîÐС£
CÓïÑÔÖеıàÒëÔ¤´¦ÃüÁîÓÐ:#define,#undef,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#line,#pragma,#error¡£ÕâÐ©Ô ......
ÁùÄêǰ£¬ÎÒ¸ÕÈÈÁµ“ÃæÏò¶ÔÏ󔣨Object-Oriented£©Ê±£¬Ò»¿ÚÆø¼ÇסÁ˽üÊ®¸ö¶¨Òå¡£ÁùÄêºó£¬ÎÒ´Ó¼¸Ê®ÍòÐгÌÐòÖйöÅÀ³öÀ´×¼±¸Ð´µãÐĵÃÌå»áʱ£¬È´ÎÞ·¨½âÊÍʲôÊÇ“ÃæÏò¶ÔÏ󔣬¾ÍÏó˵²»Çå³þʲôÊÇÊýѧÄÇÑù¡£Èí¼þ¹¤³ÌÖеÄʱ÷ÖÊõÓï“ÃæÏò¶ÔÏó·ÖÎö”ºÍ“ÃæÏò¶ÔÏóÉè¼Æ”£¬Í¨³£ÊÇÕë¶Ô&ldqu ......