110,570
社区成员
发帖
与我相关
我的任务
分享
class A
{
public: virtual void foo(int x) { }
};
class B : public A
{
public: virtual void foo(int x) { }
};
A *p = new A();
p->foo(1);
delete p;
p = new B();
p->foo(1);
delete p;
class A
{
public: void foo(int x) { }
};
class B : public A
{
public: void foo(int x) { }
};
其实得到这样两个普通函数:void A(A * this, int x)
{
...
}
void B(B * this, int x)
{
...
}
如果从“重载”的角度看,它们就是同名不同类型的函数。