本文共 1833 字,大约阅读时间需要 6 分钟。
int^ rInt = gcnew int; 0000005d mov ecx,788EF9D8h 00000062 call FCFAF66C 。。。 Foo^ rFoo = gcnew Foo; 00000072 mov ecx,3B51768h 00000077 call FCFAF66C |
0x00F73404 d8 f9 8e 78 00 00 00 00 。。。 |
delete pInt; 000000d8 mov ecx,dword ptr [esp 18h] 000000dc call dword ptr ds:[03B51540h] 比较简单,就是传入地址,然后调用operator delete来释放类存,会调用析构函数 |
delete rInt; 000000ac mov edx,edi 000000ae mov ecx,788F747Ch 000000b3 call FC8D20FD |
但是,请注意!!!!!!!一个类包含析构函数和不包含析构函数,他对应的delete代码是不相同的,这点能够通过汇编代码比较得到,我这里就不多说了。
转自:http://www.west.cn/info/html/chengxusheji/C-C--/20080224/9240_2.html
转载地址:http://hdemi.baihongyu.com/