在C++中,重载(Overloading)、覆盖(也称重写,Overriding)和隐藏(有时也称为重定义,Hiding or Redefining)是三种不同的概念,它们分别用于实现函数的多态性、继承多态性和名称掩盖。下面我们将详细对比这三者的区别。
1. 重载(Overloading)
定义与特点:
- 重载发生在同一个类中,当两个或多个函数拥有相同的名称但参数列表不同(参数类型、个数或顺序不同)时,这些函数就被认为是重载的。
- 重载函数可以有不同的返回类型,只要参数列表不同即可。
- 编译器根据函数调用时提供的参数类型和数量来选择合适的函数版本。
示例:
class Example {
public:
void display() {
std::cout << "Display without parameters" << std::endl;
}
void display(int a