看看 这个两个语句的区别?
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)
我也没看出来啥区别啊??~!!