16,472
社区成员
发帖
与我相关
我的任务
分享
A a;
a.method1(5);
B b;
b.method1(5);
class A
{
public:
int x;
A()
{
x =2;
}
virtual ~A()
{
}
virtual int method1(int y)
{
return x + y;
}
virtual int method2(int y)
{
return x * y;
}
};
class B : public A
{
public:
virtual ~B()
{
}
virtual int method1(int y)
{
return x * y;
}
virtual int method2(int y)
{
return x + y;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A *b = new B();
b->method1(5);
return 0;
}
A *b = new B();
0040101B push 8
0040101D call operator new (4011ACh)
00401022 add esp,4
00401025 mov dword ptr [ebp-18h],eax
00401028 mov dword ptr [ebp-4],0
0040102F cmp dword ptr [ebp-18h],0
00401033 je main+42h (401042h)
00401035 mov ecx,dword ptr [ebp-18h]
00401038 call B::B (401080h)
0040103D mov dword ptr [ebp-1Ch],eax
00401040 jmp main+49h (401049h)
00401042 mov dword ptr [ebp-1Ch],0
00401049 mov eax,dword ptr [ebp-1Ch]
0040104C mov dword ptr [ebp-14h],eax
0040104F mov dword ptr [ebp-4],0FFFFFFFFh
00401056 mov ecx,dword ptr [ebp-14h]
00401059 mov dword ptr [b],ecx
b->method1(5);
0040105C push 5
0040105E mov edx,dword ptr [b]
00401061 mov eax,dword ptr [edx]
00401063 mov ecx,dword ptr [b]
00401066 call dword ptr [eax+4]
return 0;
00401069 xor eax,eax