重载仅限于非成员函数,覆盖则是成员函数特有的现象
时间: 2024-08-14 09:05:18 浏览: 27
确实,重载(Function Overload)主要用于非成员函数,即静态成员函数或者友元函数。它是指在一个作用域内,可以有多个同名函数,但它们的参数列表(包括参数类型、顺序和个数)不同,编译器会根据调用时传入的实际参数类型来决定调用哪一个函数。
而覆盖(Method Override),又称为虚函数或动态绑定,专属于面向对象编程中的成员函数。在基类中声明为虚函数,子类中可以提供自己的实现。当通过基类指针或引用调用该函数时,会根据实际指向的对象类型动态地执行子类版本的函数,这就是多态的一个体现。这样使得程序的行为可以根据运行时的对象状态而变化。
阅读全文