dzÒéC /CLIµÄgcnew¹Ø¼ü×Ö
http://west263.com/info/html/chengxusheji/C-C--/20080224/9240.html
1. gcnew·µ»ØµÄÊǸö¾ä±ú(Handle)£¬¶ønew·µ»ØµÄÊÇʵ¼ÊµÄÄÚ´æµØÖ·.
¡¡¡¡2. gcnew´´½¨µÄ¶ÔÏóÓÉÐéÄâ»úÍйܣ¬¶ønew´´½¨µÄ¶ÔÏó±ØÐë×Ô¼ºÀ´¹ÜÀíºÍÊÍ·Å.
¡¡¡¡µ±È»£¬´Ó³ÌʽԱµÄ½Ç¶ÈÀ´Ëµ£¬¹ÜËûÊǾä±ú»¹ÊÇʲôÆäËûµÄ¶«Î÷£¬×ÜÅܲ»µôÊǶÔij¿éÄÚ´æµØÖ·µÄÒýÓã¬Êµ¼ÊÉÏÎÒÃǶ¼Äܹ»Àí½â³ÉÖ¸Õë.ÏÂÃæÎÒÃǾÍдһ¶Î´úÂëÀ´²âÊÔһϺÃÁË.
using namespace System;
ref class Foo
{
public:
Foo()
{
System::Console::WriteLine("Foo::Foo");
}
~Foo()
{
System::Console::WriteLine("Foo::~Foo");
}
public:
int m_iValue;
};
int _tmain()
{
int* pInt = new int;
int^ rInt = gcnew int;
Foo^ rFoo = gcnew Foo;
delete rFoo;
delete rInt;
delete pInt;
}
ÌØ±ð×¢Ò⣺±¾Õ¾ËùÓÐ×ªÔØÎÄÕÂÑÔÂÛ²»´ú±í±¾Õ¾¹Ûµã£¬±¾Õ¾ËùÌṩµÄÉãÓ°ÕÕÆ¬£¬²å»£¬Éè¼Æ×÷Æ·£¬ÈçÐèʹÓã¬ÇëÓëÔ×÷ÕßÁªÏµ
¡¡¡¡ÎҰѵ÷ÊÔµÄʱºòJIT±àÒëµÄ»ã±à´úÂëÔñ¼Á˲¿·ÖÈçÏÂÏÔʾ£¨Çë×¢ÒâºìÉ«²¿·Ö£©£º
int* pInt = new int;
0000004c mov ecx£¬4
00000051 call dword ptr ds:[03B51554h]
00000057 mov esi£¬eax
00000059 mov dword ptr [esp 18h]£¬esi
int^ rInt = gcnew int;
0000005d mov ecx£¬788EF9D8h
00000062 call FCFAF66C
00000067 mov esi£¬eax
00000069 mov dword ptr [esi 4]£¬0
00000070 mov edi£¬esi
Foo^ rFoo = gcnew Foo;
00000072 mov ecx£¬3B51768h
00000077 call FCFAF66C
0000007c mov esi£¬eax
0000007e mov ecx£¬esi
00000080 call dword ptr ds:[03B517ACh]
00000086 mov dword ptr [esp 1Ch]£¬esi
delete rFoo;
0000008a mov ebx£¬dword ptr [esp 1Ch]
0000008e test ebx£¬ebx
00000090 je 000000A4
00000092 mov ecx£¬ebx
00000094 call dword ptr ds:[03FD0028h]
0000009a mov dword ptr [esp 14h]£¬0
000000a2 jmp 000000AC
000000a4 mov dword ptr [esp 14h]£¬0
delete rInt;
000000ac mov edx£¬edi
000000ae mov ecx£¬788F747Ch
000000b3 call FC8D20FD
000000b8 mov ebp£¬eax
000000ba test ebp£¬ebp
000000bc je 000000D0
000000be mov ecx£¬ebp
000000c0 call dword ptr ds:[03FD0020h]
000000c6 mov dword ptr [esp 10h]£¬0
000000ce jmp 000000D8
000000d0 mov dword ptr [esp 10h]£¬0
delete pInt;
Ïà¹ØÎĵµ£º
1.ÇóÏÂÃæº¯ÊýµÄ·µ»ØÖµ£¨ ΢Èí£©
int func(x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
  ......
int svd(int m,int n,int withu,int withv,double eps,double tol,
double *a, double *q, double *u, double *v, double *vt)
{
int i,j,k,l,l1,iter,retval;
double c,f,g,h,s,x,y,z;
double *e;
e = (double *)calloc(n,sizeof(double));
retval = 0;
/* Cop ......
¿ªÊ¼—ÔËÐЗgpedit.msc£¬´ò¿ª×é²ßÂÔ´°¿Ú—Óû§ÅäÖÃϵē¹ÜÀíÄ£°å”—WINDOWS×é¼þ£¬Ë«»÷´ò¿ªWindows×ÊÔ´¹ÜÀíÆ÷£¬È»ºóË«»÷“·ÀÖ¹´ÓÎҵĵçÄÔ·ÃÎÊÇý¶¯Æ÷”£¬´ò¿ª“ÊôÐÔ”´°¿Ú£¬Ñ¡Ôñ“ÒÑÆôÓÔ£¬È»ºóÑ¡Ôñ“½öÏÞÖÆÇý¶¯Æ÷C”£¨Äã¿ÉÒÔ°ÑÄã²»ÏëÈñðÈË´ò¿ªµ ......
ת
ÔØ×Ôhttp://www.builder.com.cn/
static
ÊÇc++Öкܳ£ÓõÄÐÞÊηû£¬Ëü±»ÓÃÀ´¿ØÖƱäÁ¿µÄ´æ´¢·½Ê½ºÍ¿É¼ûÐÔ£¬ÏÂÃæÎÒ½«´Ó static ÐÞÊηûµÄ²úÉúÔÒò¡¢×÷ÓÃ̸Æð£¬È«Ãæ·ÖÎöstatic
ÐÞÊηûµÄʵÖÊ¡£
¡¡¡¡static µÄÁ½´ó×÷ÓÃ:
¡¡¡¡Ò»¡¢¿ØÖÆ´æ´¢·½Ê½£º
¡¡¡¡static±»ÒýÈëÒÔ¸æÖª±àÒëÆ÷£¬½«±ä ......
¿ìËÙÃÝȡģÀíÂÛ»ù´¡£º ¼ÆËã a^b mod c ?
ÓÉ(a x b) mod c=((a mod c) x b) mod c.
ÎÒÃÇ¿ÉÒÔ½« bÏȱíʾ³É¾Í£º
b=at2^t+at-1 2^t-1+……a02^0. (ai=[0,1]).
ÕâÑùÎÒÃÇÓÉ a^b mod c=(a^(at2^t+at-12^t-1+…a02^0)mod c.
È»¶øÎÒÃÇÇó a^(2^(i+1)) ......