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

看看 这个两个语句的区别?解决方案

2012-02-20 
看看 这个两个语句的区别?solution A:Object a, ba *(&a)Solution B:Object a, ba b[解决办法]如

看看 这个两个语句的区别?

solution A:

Object a, b;
a = *(&a);



Solution B:

Object a, b;
a = b;

[解决办法]
如果自己研究,建议看详细看一下c++的运算符重载

如果的面试题,这个问题对新手来说有点难度,难就难在上面的窗户纸,捅破了就通

路遥知马力,lz加油吧
[解决办法]
不重载=运算符:

14: A a,b,aa;
15: a = *(&b);
00401048 mov al,byte ptr [ebp-8]
0040104B mov byte ptr [ebp-4],al
16: aa = b;
0040104E mov cl,byte ptr [ebp-8]
00401051 mov byte ptr [ebp-0Ch],cl


可见,俩没啥区别~!

重载=:

18: A a,b,aa;
19: a = *(&b);
00401048 lea eax,[ebp-8]
0040104B push eax
0040104C lea ecx,[ebp-4]
0040104F call @ILT+0(A::operator=) (00401005)
20: aa = b;
00401054 lea ecx,[ebp-8]
00401057 push ecx
00401058 lea ecx,[ebp-0Ch]
0040105B call @ILT+0(A::operator=) (00401005)


我也没看出来啥区别啊??~!!

热点排行