日期:2014-05-18 浏览次数:20782 次
class A { public: void foo(int x) { } }; class B : public A { public: void foo(int x) { } };
------解决方案--------------------
重写 是父类和子类之间的同名方法的一种关系
重载 是单个类内部的各种同名方法的一种关系
重写 的方法的签名必须完全一致
重载 的方法的签名可以不一致
------解决方案--------------------
但是C++不但支持静态联编,还支持动态联编。
动态联编的实质是借助一个“虚函数表”,在程序运行的时候判断应该执行哪一个函数:
class A { public: virtual void foo(int x) { } }; class B : public A { public: virtual void foo(int x) { } };