首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++痛恨者札记2——函数返回值为类对象

2012-08-15 
C++愤恨者札记2——函数返回值为类对象C愤恨者札记2——函数返回为类对象为避免冗余代码,程序使用Release配置

C++愤恨者札记2——函数返回值为类对象
C++愤恨者札记2——函数返回值为类对象
    为避免冗余代码,程序使用Release配置编译,但要把/Od选项打上,否则编译器优化,会使用代码很难懂。
    当函数返回值是基本的数据类型(如,int,char)时,会把返回结果放在eax上,这样函数调用者就可以通过eax获得函数返回结果了。但如果返回值是一个类对象呢?eax根本不够用了。

实验源码:

hello!Fn:01381020 55              push    ebp01381021 8bec            mov     ebp,esp01381023 83ec0c          sub     esp,0Ch;分配内存01381026 8d4df4          lea     ecx,[ebp-0Ch]01381029 e8d2ffffff      call    hello!Node::Node (01381000);构造函数0138102e c745f464000000  mov     dword ptr [ebp-0Ch],64h;n.data1 = 100;01381035 8d45f4          lea     eax,[ebp-0Ch]01381038 50              push    eax01381039 8b4d08          mov     ecx,dword ptr [ebp+8];临时空间地址,作为this指针0138103c e8cfffffff      call    hello!Node::Node (01381010);调用拷贝构造函数01381041 8b4508          mov     eax,dword ptr [ebp+8]01381044 8be5            mov     esp,ebp01381046 5d              pop     ebp01381047 c3              ret



热点排行