C++覆盖与重载

C++中覆盖和重载经常是初学者感到很困惑的地方。
重载是一个编译时的概念。它是用来区别带不同参数(参数的类型,数量,顺序)的同名函数的工具。如果声明了同名函数,编译器会在执行时根据参数来确定调用哪一个。重载不会涉及任何成员的改变。它是一个强大的工具,它允许程序员在输入不同数据的情况下,使用同名的函数来完成类似的任务。而且重载只用于函数,不用于类,大部分使用的重载函数都是成员函数。
覆盖是运行时的概念,它在运行时从一组被覆盖的函数中选择一个函数。覆盖允许派生类的实现者所使用的接口与基类的接口一致,但是各自的实现方法不同。通过覆盖,使用的是对象所实现的正确方法,而不是调用接口所使用的实现方法。覆盖基於单个函数。覆盖意味着继承,没有继承,就不存在覆盖,

总体来说,重载是在编译过程中在各个同名函数中选择使用哪个函数来执行,而覆盖是在运行时从一组被覆盖的函数中选择一个函数。即选择和判断的关系。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章